Вы можете превратить all
nodeList
в массив, а затем использовать методы массива, чтобы сделать поиск и удалений:
var all = Array.prototype.slice.call(document.querySelectorAll('*'), 0);
var divs = document.querySelectorAll('div');
for (var i = 0; i < divs.length; i++) {
var pos = all.indexOf(divs[i]);
if (pos !== -1) {
all.splice(pos, 1);
}
}
Это требует IE9 (для .indexOf()
), или вы можете использовать polyfill, чтобы заставить его работать в старых версии IE, или вы можете создать свою собственную функцию, которая выполняет итерацию через массив, чтобы найти, соответствует ли элемент.
На второй мысли, есть немного более простой способ сделать это:
var all = Array.prototype.slice.call(document.querySelectorAll('*'), 0);
for (var i = all.length - 1; i >= 0; i--) {
if (all[i].tagName === "DIV") {
all.splice(i, 1);
}
}
Почему это работает? Можете ли вы показать нам, что еще вы пробовали? – elclanrs