javascript - getElementsByTagName 不起作用?

标签 javascript

在下面的代码中,我通过使用 javascript 动态地将“偶数”类分配给所有偶数行,从而为它们应用不同的背景颜色。我正在调用 body 标记的 alternamte() 函数 onload。

首先,我使用 getElementById 来获取表对象,并且我的代码运行良好。但是,我想将此样式应用于页面上的所有表格,因此我需要使用按标签名称获取元素。

一旦我更改了 getElementByTagName,我的代码就停止工作,我已经尝试找出问题的根源一段时间了,但没有成功。我想知道是否有人可以帮助我理解为什么我的代码在更改 getElementByTagName 后停止工作?

  <script type="text/javascript"> 
    function alternate(){
        var table = document.getElementsByTagName("table");   
        var rows = table.getElementsByTagName("tr");   

        for(i = 0; i < rows.length; i++){           
            //change style of even rows 
            //(odd integer values, since we're counting from zero)
            if(i % 2 == 0){ 
                rows[i].className = "even"; 
            }     
        }   
    }
  </script>

最佳答案

这是 getElementsByTagName() ,复数。它返回一个 HTMLCollection

var table = document.getElementsByTagName("table")[0];   

(如果您确信页面上有 <table>。)

如果您想对 <table>所有进行操作元素,你必须这样做:

    var tables = document.getElementsByTagName("table");   

    for (var ti = 0; ti < tables.length; ++ti) {
      var rows = tables[ti].getElementsByTagName("tr");   
      for(var i = 0; i < rows.length; i++){           
        //change style of even rows 
        //(odd integer values, since we're counting from zero)
        if(i % 2 == 0){ 
            rows[i].className = "even"; 
        }     
      }   
    }

关于javascript - getElementsByTagName 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13125284/

相关文章:

javascript - Uncaught ReferenceError : method is not defined

javascript整数数组中可用于获取总值的元素的最少数量

javascript - Rxjs CombineLatest 和 Object.assign 在 @angular/material 源中的使用说明

javascript - 如何在另一个图像 rails 的图像标签内添加 src 图像路径

javascript - 如何使用 Angular JS 正确地遍历数组元素?

javascript - 像 facebook 蓝条这样的非刷新 div

Javascript 日期 - 月份总是递增

javascript - 过滤以不在结果数组中包含匹配值

javascript - 有没有办法更改 Material ui的自动完成组件上的关闭图标?

javascript - 添加图像前缀未出现