如何否定上下文

Aar*_*ron 6 jquery css-selectors negate

我想选择元素,但如果他们的祖先之一与某个选择器匹配则不会.

例如,假设我想匹配<a>不是表的后代的所有节点.

我试过这样的事情:

$("a", ":not(table *)");
Run Code Online (Sandbox Code Playgroud)

但那会让我的浏览器崩溃.

这个也挂了我的浏览器:

jQuery("a", ":not(table td)");
Run Code Online (Sandbox Code Playgroud)

查询的页面非常大,有很多非常大的表.所以,我需要一些表现也很好的东西.有任何想法吗?

zzz*_*Bov 6

其他答案过于复杂.

$('a').not('table a');
Run Code Online (Sandbox Code Playgroud)

-要么-

$('a:not(table a)');
Run Code Online (Sandbox Code Playgroud)

jQuery函数中的第二个参数是搜索元素的上下文,但选择:not(table)将选择不是表的每个元素,其中包括表的后代.通常,当您拥有要搜索的特定文档或元素时,您希望使用context参数.