我想选择元素,但是不希望它们的祖先匹配某个选择器。
举个例子,假设我想匹配所有不是表格后代的 <a>
节点。
我尝试了类似这样的代码:
$("a", ":not(table *)");
但是这会导致我的浏览器崩溃。
这个也会让我的浏览器挂起:
jQuery("a", ":not(table td)");
被查询的页面非常大,有许多非常大的表格。因此,我需要一些性能良好的东西。有什么建议吗?
我想选择元素,但是不希望它们的祖先匹配某个选择器。
举个例子,假设我想匹配所有不是表格后代的 <a>
节点。
我尝试了类似这样的代码:
$("a", ":not(table *)");
但是这会导致我的浏览器崩溃。
这个也会让我的浏览器挂起:
jQuery("a", ":not(table td)");
被查询的页面非常大,有许多非常大的表格。因此,我需要一些性能良好的东西。有什么建议吗?
$('a').not('table a');
-or-
$('a:not(table a)');
< p >在< code >jQuery函数中的第二个参数是要查找元素的上下文,但选择< code >:not(table)将选择不是表格的< em >每个元素,包括表格的后代。通常情况下,当您有一个特定的文档或元素需要搜索时,您会想使用上下文参数。
$('a').not(function() {
return $(this).closest('table').length > 0;
});
如果它们始终是<td>
标签的直接子元素,则可能会更快。
$('a').not(function() {
return $(this).parent('td').length > 0;
});