我想获取整个document.body,除了子级和嵌套子级,它们的id以字符串开头。
我试着使用document.querySelector('body *:not([id*="mystr"])')
,但它只过滤掉顶级的孩子。我想筛选出具有匹配id字符串的任何级别的子级。
编辑:请参阅https://jsfiddle.net/pm7dbac9/
我想你想这样做
var excludedElements = ["SCRIPT", "META", "TITLE", "STYLE"],
elements = Array.prototype.filter.call(document.querySelectorAll("body *"),(function(element) {
return excludedElements.indexOf(element.nodeName) === -1 && element.id !== "nomatch";
}));
// testing
elements.forEach(function(element) {
console.log(element.id);
});
<div id="container">
<div id="nomatch">
pls dont match me
</div>
<div id="xyz">
lorem ipsum
</div>
<div id="nomatch">
pls dont match me
</div>
<div id="abc">
lorem ipsum
</div>
</div>
但问题是你不能分配多个唯一的id,你应该用类来做,我刚刚给你看了一个的例子