2009-12-17 1 views
2

Я довольно новичок в jQuery и думаю, что я могу сделать что-то более сложное, чем это должно быть. У меня есть переменная jQuery, которая является просто неупорядоченным списком. Он был объявлен так:Использование объектов jQuery в селекторах jQuery

var $list = $('#activityList'); // activityList is ID of <ul> 

Я пытаюсь выбрать все <li> элементы в этом списке, используя переменную я создал:

$items = $('#' + $list.attr('id') + ' > li'); 

Кто-нибудь знает, если есть другой синтаксис для достижения то же самое без необходимости разбивать переменную до ее атрибута id?

Спасибо.

Разъяснение: Я использовал упрощенный код для целей задать вопрос, но я хочу, чтобы использовать JQuery переменной «$» списка в селекторе, а не жестко прописывать идентификатор.

+0

Почему вы префикс своих переменных $? –

+2

Потому что это упрощает идентификацию объектов jQuery с большим блоком js-кода. –

+0

@Sander .., что сказал Кевин. –

ответ

5
$items = $('li', $list); 

Это должно делать то, что вы ищете.

+0

На самом деле должно быть $ ('li', $ list) - нет # перед ли. :) –

+0

@Wesley, спасибо за улов. Мне это было интересно. –

+0

Также стоит отметить, что вы можете передать объект jQuery или объект DOM в качестве контекста. –

1

Попробуйте это:

var items = $('#activityList > li'); 
0

Может быть, я недоразумение, но что случилось с ...

var $items = $('#activityList > li'); 
+0

В этом нет ничего плохого, у вас уже есть ** контекст для поиска в (' $ list'), так почему бы не сохранить некоторую обработку и начать там? ;) –

3

$ ("# activitylist> Ли") будет работать, так как> траверсы содержание , Вы также можете использовать с $ list как объект JQuery:

$ list.find ("li") или $ list.children ("li"), чтобы найти элементы списка. дети будут более эффективными, если вы ищете только детей.

+0

+1 для поиска/детей, поскольку это функциональность, эквивалентная доминирующему ответу. –