Получить строковое представление селектора jQuery - PullRequest
3 голосов
/ 08 сентября 2011

С данным селектором jQuery $('#my-id .my-class a'), хранящимся как переменная jqElement, как я могу вернуть строковое представление этого селектора?

Другими словами:

jqElement = $('#my-id .my-class a');
jqElement.someFunc(); // returns '#my-id .my-class a'

Я посмотрел здесь Как получить выражение селектора jQuery в виде текста? , но нашел информацию устаревшей и, возможно, неполной.

Ответы [ 4 ]

3 голосов
/ 08 сентября 2011

Как указано в ответах на вопрос, на который вы ссылаетесь, свойство selector является наиболее подходящим методом, который вы найдете.

Хотя это абсолютно точно для базовых селекторов, вы обнаружите, что при использовании методов манипуляции, таких как parent(), next() и т. Д., Свойство .selector будет искажено после повторного использования:

alert($('foo[id^=fish]:gt(5):eq(4)').selector); // foo[id^=fish]:gt(5):eq(4)
alert($('foo').children('bar').next().selector); // foo.children(bar).next()

например. вы можете подключить первый прямой обратно к $(), но вы не можете подключиться к последнему.

3 голосов
/ 08 сентября 2011
$('#my-id .my-class a').selector;
2 голосов
/ 08 сентября 2011
jqElement.selector

вернет значение селектора

2 голосов
/ 08 сентября 2011

Свойство selector предоставляет селектор объекта jQuery. Например ...

var cache = $("#my-id .my-class a");

alert(cache.selector); // will alert "#my-id .my-class a"
...