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

时间:2012-08-15 19:43:22

标签: javascript jquery html dom

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

$(*)

然后我想过滤掉svg节点的子节点。我怎么能这样做?

3 个答案:

答案 0 :(得分:2)

您可以尝试使用not功能:

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

请注意,这将非常缓慢。

答案 1 :(得分:2)

使用.filter()

$('*').filter(function() {
  return $(this).parents('svg').length == 0;
});

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

答案 2 :(得分:0)

http://api.jquery.com/not/

$('*').not('svg *');