0

我试图让每个表行单击以突出显示颜色,我正在使用类名处理此问题,但 onclick 函数未执行,我尝试在 onclick 函数中打印语句以检查它是否正在输入,但它是只是不。

这是与该部分相关的JS代码:

var rows = document.getElementsByTagName("tr");
    for (var i = 0; i < rows.length; i++)
    {
        rows[i].onclick = function() {
                        this.className = "highlighted";
                        }
    }

有谁知道为什么这个功能没有被输入?

编辑:我意识到行变量中的错误并更正了它,但该函数仍未输入,我的 JS 控制台上没有错误

4

4 回答 4

0

使用getElementsByTagName而不是getElementsById.

于 2013-05-07T07:37:06.310 回答
0

尝试这个

 var rows = document.getElementsByTagName("tr");

添加分号

rows[i].onclick = function() {
                        this.className = "highlighted";
                        }; // here

它对我有用..在这里检查:JS Fiddle

于 2013-05-07T07:37:09.823 回答
0

使用此代码。您的表行必须具有值为“tr”的属性名称才能使这项工作:

var rows = document.getElementsByName("tr");
for (var i = 0; i < rows.length; i++)
{
    rows[i].onclick = function() {
        this.className = "highlighted";
    }
}
于 2013-05-07T07:38:30.167 回答
0
var table = document.getElementById("tableId");        
var rows = table.getElementsByTagName("tr");
for (i = 0; i < rows.length; i++) {
    var currentRow = table.rows[i]; 
    var createClickHandler = function(row) {
        return function() { 
            row.className = "highlighted";
        };
    };
    currentRow.onclick = createClickHandler(currentRow);
    }

使用它它会工作....

于 2013-05-07T07:42:40.693 回答