在浏览器的JavaScript控制台中试试这个:
$('<p><span id="wow">FooBar</span></p>').filter('#wow')
我得到的是[]
。这是为什么?是不是应该过滤掉那个id不是“哇”的跨度?
答案 0 :(得分:2)
jQuery对象中只有一个元素,它是p
。 span
恰好是一个孩子。然后,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元素。