为什么我不能使用jQuery通过其id过滤掉元素?

时间:2013-07-01 04:34:44

标签: jquery

在浏览器的JavaScript控制台中试试这个:

$('<p><span id="wow">FooBar</span></p>').filter('#wow')

我得到的是[]。这是为什么?是不是应该过滤掉那个id不是“哇”的跨度?

4 个答案:

答案 0 :(得分:2)

jQuery对象中只有一个元素,它是pspan恰好是一个孩子。然后,p与您的查询不匹配,过滤器返回一个空数组。 您可能想使用find:

$('<p><span id="wow">FooBar</span></p>').find('#wow')

答案 1 :(得分:2)

.filter()过滤匹配元素集。元素集中唯一的元素是<p>标记,它与您的选择符不匹配。

您想要使用.find()代替:

> $('<p><span id="wow">FooBar</span></p>').find('#wow')
[<span id=​"wow">​FooBar​</span>​]

答案 2 :(得分:1)

过滤器会为您提供符合条件的项目。我认为你的意思是使用'not'。

答案 3 :(得分:0)

看看documention中选择器的语法,结果也可能是零集合,具体取决于是否找到元素:

  

使用id选择器作为参数调用jQuery()(或$())   返回一个包含零或一个集合的jQuery对象   DOM元素。