Javascript JS:getElementsByTagName获取所有*但只有一个元素
我正在使用一个脚本来选择网页的所有节点Javascript JS:getElementsByTagName获取所有*但只有一个元素,javascript,Javascript,我正在使用一个脚本来选择网页的所有节点 nodes = document.body.getElementsByTagName('*'); 但是我想排除一个元素,比如ThisID,以及它的所有子元素 我该怎么做呢?你可以用 *将从主体中选择所有元素。 :notselector将过滤掉与所提供选择器相关的元素。 用于排除需要筛选的节点的子节点 var nodes = Array.from(document.body.querySelectorAll('*:not(#ThisID)'));
nodes = document.body.getElementsByTagName('*');
但是我想排除一个元素,比如ThisID,以及它的所有子元素
我该怎么做呢?你可以用
*将从主体中选择所有元素。
:notselector将过滤掉与所提供选择器相关的元素。
用于排除需要筛选的节点的子节点
var nodes = Array.from(document.body.querySelectorAll('*:not(#ThisID)'));
var filter = document.querySelector("#ThisID");
nodes = nodes.filter(function(node) {
return !filter.contains(node);
});
console.log(nodes); // This will not contain the node #test1 as well its children.
迭代收集的节点,并使用
此解决方案仅排除该元素。。。不是它的孩子?!我想知道我是否应该在生成的数组中删除它们……也许更容易?@Francesco Yeah。我正在研究解决这个问题的办法。我不知道那部分。
var nodes = Array.from(document.body.querySelectorAll('*:not(#ThisID)'));
var filter = document.querySelector("#ThisID");
nodes = nodes.filter(function(node) {
return !filter.contains(node);
});
console.log(nodes); // This will not contain the node #test1 as well its children.