有这个html:
<div><h1>1</h1></div>
<div>2</div>
<div><h1>3</h1></div>
这将返回0:
$("div").filter(":not(:not(:has(h1)))").length
我做了一些testing here,前两个选择器都没问题(没有任何过滤,然后只有一个没有过滤。)
这是一个比我的代码更简单的模型。我真的无法避免两者都不是因为一个是由插件添加而另一个是在其选项中被接收。
答案 0 :(得分:2)
不知道为什么会这样,但它在1.8版本上得到修复。 Here is the same code with jQuery 1.8 working
如果由于某种原因无法更改版本,则一种解决方法是更改.filter
的{{1}}。 Here它正在发挥作用。
答案 1 :(得分:0)
您是否尝试删除双重'不是这样的?
alert($("div").length);
alert($("div").filter(":not(:has(h1))").length);
alert($("div").filter(":has(h1)").length);