Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取页面上的所有节点,但具有特定节点作为祖先的节点除外_Javascript_Jquery_Html_Dom - Fatal编程技术网

Javascript 获取页面上的所有节点,但具有特定节点作为祖先的节点除外

Javascript 获取页面上的所有节点,但具有特定节点作为祖先的节点除外,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,我使用jquery获取页面上的所有节点 $(*) 然后我想过滤掉svg节点的子节点。如何执行此操作?您可以尝试使用not功能: $('*').not($('#ancestorID').find('*')); 请注意,这将非常缓慢。您可以尝试使用not功能: $('*').not($('#ancestorID').find('*')); 请注意,这将非常缓慢。使用.filter(): 另外,我认为将jQuery*选择器替换为document.getElementsByTagName('*')

我使用jquery获取页面上的所有节点

$(*)

然后我想过滤掉
svg
节点的子节点。如何执行此操作?

您可以尝试使用not功能:

$('*').not($('#ancestorID').find('*'));

请注意,这将非常缓慢。

您可以尝试使用not功能:

$('*').not($('#ancestorID').find('*'));
请注意,这将非常缓慢。

使用
.filter()

另外,我认为将jQuery
*
选择器替换为
document.getElementsByTagName('*')
可能会提高速度。

使用
.filter()

另外,我认为用
document.getElementsByTagName('*')
替换jQuery
*
选择器可能会提高速度。


或者,
svg*
匹配所有子代,还是只匹配直接子代?@jbabey所有子代(要匹配直接子代,它将是
'svg>*.
)将
svg*
匹配所有子代,还是只匹配直接子代?@jbabey所有子代(要匹配直接子代,它将是
'svg>*.
)您将如何将其与纯javascript结合使用以提高速度?您将如何将其与纯javascript结合使用以提高速度?@user730569我认为您必须重新考虑您的设计。无论您做什么,这都将遍历整个DOM两次。@user730569我认为您必须重新考虑您的设计。无论您做什么,这都将遍历整个DOM两次。
$('*').not('svg *');