在浏览器的 JavaScript 控制台中试试这个:
$('<p><span id="wow">FooBar</span></p>').filter('#wow')
我得到的是[]
。这是为什么?难道不应该过滤掉id不是“哇”的跨度吗?
在浏览器的 JavaScript 控制台中试试这个:
$('<p><span id="wow">FooBar</span></p>').filter('#wow')
我得到的是[]
。这是为什么?难道不应该过滤掉id不是“哇”的跨度吗?
jQuery 对象中只有一个元素,它是p
. span
刚好是个孩子。然后, p 与您的查询不匹配,过滤器返回一个空数组。您可能想使用查找:
$('<p><span id="wow">FooBar</span></p>').find('#wow')
.filter()
过滤匹配元素的集合。您的元素集中唯一的元素是<p>
标签,它与您的选择器不匹配。
您想.find()
改用:
> $('<p><span id="wow">FooBar</span></p>').find('#wow')
[<span id="wow">FooBar</span>]
过滤器将为您提供符合条件的项目。我认为您的意思是使用“不”。
查看文档中选择器的语法,结果也可能是零集合,具体取决于是否找到元素:
使用 id 选择器作为参数调用 jQuery()(或 $())将返回一个 jQuery 对象,其中包含零个或一个 DOM 元素的集合。