如何否定上下文

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

要回复问题请先登录注册