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