2

我有一个正在运行的脚本,我希望它选择所有 ID 或类,而不仅仅是第一个。

<script type = "text/Javascript" >
    function color(){
        var d=document.getElementsByClassName("black")[0];
        d.setAttribute("style", "background-color:#333;");
    }
</script>
4

2 回答 2

1
  1. [0]indocument.getElementsByClassName("black")[0]意味着您实际上在选择它们之后丢弃了除第一个之外的所有内容。如果要遍历返回的值,请使用循环gEBCN
  2. document.getElementsByTagName('*')如果您想要所有元素,请使用。

function color() {
    var allElements = document.getElementsByTagName('*');
    for (var i=0; i<allElements.length; i++) {
        allElements[i].setAttribute('style', 'background-color:#333;');
    }
}
于 2012-05-26T22:14:55.090 回答
1

要获取具有特定 ID 的所有元素,您可以依赖querySelectorAll,如

var d = document.querySelectorAll("#temp");

请记住一些事情:

  1. 即使在句法上,具有相同 id 的多个元素在语义上也是错误的。
  2. querySelectorAll返回一个NodeList对象,而不是实时集合。这意味着如果您添加另一个 id 为“temp”的元素,那将不会出现在您获得的集合中,您必须再次调用 querySelectorAll。
  3. querySelectorAllIE7 和以前的版本不支持。

你已经有了答案getElementsByClassName

于 2012-05-26T22:17:07.177 回答