har*_*tio 1 html javascript arrays jquery dom
所以这是我当前的jquery代码,我想在vanilla js中.
var elems = [];
$("*").not('script, style, iframe').each(function() {
elems.push($(this)[0]);
});
Run Code Online (Sandbox Code Playgroud)
我找到的最接近的替代方案是
document.getElementsByTagName("*")
但仍然有iframe,样式和脚本标签,我不希望在我的阵列中.
另外,我不能仅仅通过它们的标记名称删除它们,因为它们可能具有与它们相关联的id或类.
一种选择是使用CSS选择器和.querySelectorAll()方法.
由于CSS有一个:not()伪类,你可以用它来否定script,style和iframe元素.
var elements = document.querySelectorAll('*:not(script):not(style):not(iframe');
Run Code Online (Sandbox Code Playgroud)
在上面的代码段中,elements将NodeList包含所选元素的集合.