我想选择元素,但如果他们的祖先之一与某个选择器相匹配则不会。
例如,假设我想匹配不是表的后代的所有<a>
个节点。
我试过这样的事情:
$("a", ":not(table *)");
但是我的浏览器崩溃了。
这个也挂了我的浏览器:
jQuery("a", ":not(table td)");
查询的页面非常大,有很多非常大的表。所以,我需要一些表现也很好的东西。有什么想法吗?
答案 0 :(得分:6)
其他答案过于复杂。
$('a').not('table a');
-OR -
$('a:not(table a)');
jQuery
函数中的第二个参数是搜索元素的上下文,但选择:not(table)
将选择不是表的每个元素,包括表的后代。通常,当您拥有要搜索的特定文档或元素时,您希望使用context参数。
答案 1 :(得分:0)
$('a').not(function() {
return $(this).closest('table').length > 0;
});
如果他们总是<td>
代码的直接子女
$('a').not(function() {
return $(this).parent('td').length > 0;
});
答案 2 :(得分:0)