我希望能够为以下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选择器一起使用(在这种情况下,任何实现该功能的浏览器都应该已经支持)。因此,要选择具有att1att2或两者都有的元素,请使用注释中所述的元素:

var elms = document.querySelectorAll('[att1], [att2]');

关于javascript - 如何遍历包含提供的属性之一的HTML DOM节点?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6035395/

10-12 12:33