我希望能够为以下CSS选择器获取第一个匹配元素,然后是第二个,依此类推:
[att]
以下选择器不是有效的CSS3选择器,但这就是我要完成的工作:
[att][0]
[att][1]
...
[att][n]
是否可以像上面的示例一样组合多个选择器并遍历每个匹配节点?
[att1],[att2]
如果使用本机DOM或CSS3选择器无法做到这一点,那么XPath查询也是一个选择。
最佳答案
如果document.querySelectorAll()
是一个选项,它将非常容易-只需通过选择器,浏览器将处理其余内容:
var elms = document.querySelectorAll('[att]');
for (var i = 0; i < elms.length; ++i) {
alert(elms[i].tagName);
}
只要您的浏览器支持它,它就可以与您传递的任何CSS选择器一起使用(在这种情况下,任何实现该功能的浏览器都应该已经支持)。因此,要选择具有
att1
,att2
或两者都有的元素,请使用注释中所述的元素:var elms = document.querySelectorAll('[att1], [att2]');
关于javascript - 如何遍历包含提供的属性之一的HTML DOM节点?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6035395/