Как использовать селекторы jQuery с объектом? - PullRequest
0 голосов
/ 23 сентября 2010

У меня есть неупорядоченный список в объекте:

var myUL = $('ul#theID'); //I send this var to another function in the code

Я хочу, чтобы непосредственные потомки были только у этого объекта (у меня есть еще один 'ul' внутри каждого 'li', в котором также есть 'li'), но этот селектор не работает:

$(myUL + '>li').each( etc, etc...

В этом селекторе в Firebug выдается ошибка «необработанное исключение: синтаксическая ошибка, нераспознанное выражение: [объект объекта]».

Если я использую $('li', myUL), это дает мне ВСЕ «ли», а не только прямых детей, а это не то, чего я хочу. Я хочу только прямых детей.

Какой правильный синтаксис?

Ответы [ 4 ]

3 голосов
/ 23 сентября 2010

Попробуйте

var li_children = myUL.children('li');

(Правильно, в любом случае <ul> может иметь только <li> детей.)

1 голос
/ 23 сентября 2010
var myUL = Jquery('ul#theID');
jQuery('>li', myUL);


jQuery selector works this way
jQuery(selector, context);
1 голос
/ 23 сентября 2010
$('>li', myUl)

Этого должно быть достаточно?

0 голосов
/ 23 сентября 2010

Вам не нужно использовать имя тега в начале селектора, который заканчивается идентификатором.Один только ID - самый быстрый селектор.Использование метода прямых детей будет быстрее, чем селектор.Кроме того, отказ от добавления селектора к методу .children () позволит jQuery пропустить этап фильтрации, который не требуется, поскольку у вас должны быть все дочерние элементы 'li', независимо от:

var $myUls = $( "#theID" ).children();

Cheers, awirick

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...