2012-03-03 97 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');