2012-03-03 94 views
3

確定這一定是一個傻瓜最簡單的一個,但我無法找到的文檔獲取元素

<ul> 
     <li class="foo" id="jack" ></li> 
     <li class="foo" id="jill" ></li> 
     <li class="foo" id="tom" ></li> 
     <li class="foo" id="dick" ></li> 
     <li class="foo" id="harry" ></li> 
    </ul> 

而簡單的jQuery

var listItems = $('li.foo'); 

現在我如何從listItems獲得#jack?我已經知道.eq() .get() .find()等。但沒有一個能夠一舉成功。不基於索引,不尋找孩子或父母,但基於選擇的現有元素的ID。任何人都知道這一個?

+0

@isbadawi由於'.find()'看起來爲處於jQuery對象的選擇器匹配的元素的後代的元素。由於他想要的元素已經是jQuery對象的一部分,情況並非如此。 – 2012-03-03 18:57:15

+0

@AnthonyGrist Ya我收到了,當您發佈時刪除了我的評論權。多麼尷尬! – 2012-03-03 18:57:58

回答

6

每當你處理一個ID就沒有必要做一個子查詢。一個ID是唯一的,正好可以直接查詢

$('#jack') 

如果你確實想爲一個非ID值雖然做一個子查詢,然後看向filter

$('ul li').filter('.foo') 
+0

我特別要求如何做一個子查詢。 – Fresheyeball 2012-03-03 18:54:29

+3

@Fresheyeball一個ID,儘管你從不做子查詢。他們獨一無二。 – JaredPar 2012-03-03 18:55:22

+1

它們不僅獨特,而且速度更快。 http://jsperf.com/filter-vs-id-lookup – tvanfosson 2012-03-03 19:19:44

2

使用.filter()像這樣:

listItems.filter('#jack');