使用getElementByid选择所有ID或类

时间:2012-05-26 22:10:28

标签: javascript getelementbyid getelementsbyclassname

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

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

2 个答案:

答案 0 :(得分:1)

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

  3. function color() {
        var allElements = document.getElementsByTagName('*');
        for (var i=0; i<allElements.length; i++) {
            allElements[i].setAttribute('style', 'background-color:#333;');
        }
    }
    

答案 1 :(得分:1)

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

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

请记住一些事情:

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

相关问题