我想选择元素,但如果它们的祖先之一与某个选择器匹配,则不会。
例如,假设我想匹配<a>
不是表后代的所有节点。
我试过这样的事情:
$("a", ":not(table *)");
但这会使我的浏览器崩溃。
这个也挂了我的浏览器:
jQuery("a", ":not(table td)");
查询的页面很大,有很多非常大的表。所以,我也需要一些表现良好的东西。有任何想法吗?
我想选择元素,但如果它们的祖先之一与某个选择器匹配,则不会。
例如,假设我想匹配<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;
});