2009-12-17 78 views
2

我對jQuery相當陌生,並且認爲我可能會做出比它需要的更難的東西。我有一個只是一個無序列表的jQuery變量。它是這樣聲明:在jQuery選擇器中使用jQuery對象

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

我想用我創建了變量來選擇列表中的所有元素<li>

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

有誰知道,如果有一個不同的語法來實現同樣的事情,而不必將變量分解爲它的id屬性?

謝謝。

澄清:我使用簡化的代碼來提出問題,但我希望在選擇器中使用jQuery變量「$ list」,而不是硬編碼該ID。

+0

你爲什麼用$加前綴變量? – 2009-12-17 21:15:27

+2

因爲它可以更容易地識別帶有大塊js代碼的jQuery對象。 – 2009-12-17 21:25:08

+0

@桑德..凱文說什麼。 – 2009-12-17 21:33:58

回答

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

這應該做你正在尋找的東西。

+0

實際上應該是$('li',$ list) - no#之前的李。 :) – 2009-12-17 21:11:36

+0

@韋斯利,謝謝你的收穫。我在想我自己。 – 2009-12-17 21:12:34

+0

另外值得注意的是,你可以傳遞一個jQuery對象或DOM對象作爲上下文。 – 2009-12-17 21:13:39

1

試試這個:

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

也許我誤解,但是這有什麼錯?

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

它沒有什麼不對,你只是**有**上下文搜索('$ list'),爲什麼不保存一些處理並從那裏開始? ;) – 2009-12-17 21:22:28

3

$( 「#activitylist>李」)會的工作,如>遍歷內容。您還可以使用$ list作爲JQuery對象:

$ list.find(「li」)或$ list.children(「li」)也可以查找列表項目。如果你只是在尋找直接的孩子,孩子會更有效率。

+0

+1查找/兒童,因爲它是功能等同於主導的答案。 – 2009-12-17 21:24:18