2013-05-07 73 views
0

我想让每个表格行点击以突出显示颜色,我用类名来处理这个,但onclick函数没有执行,我试着在里面打印语句onclick函数来检查它是否进入,但它不是。Javascript表格行<tr> onclick函数没有执行

下面是相关的部分JS代码:

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

任何人都知道为什么没有得到进入这个功能呢?

编辑:我实现了可变行的错误,我纠正它,但仍没有得到进入功能和我有我的JS控制台

+1

getElementsById应该getElementsByName – 2013-05-07 07:36:32

回答

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); 
    } 

使用该会的作品....

0

使用getElementsByTagName,而不是getElementsById上没有错误。

0

试试这个

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

添加分号

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

它为我的作品。检查这里:JS Fiddle

+2

哇,我必须累了......我改变了这一点,但在我的Javascript控制台中仍然没有结果或错误 – AuthenticReplica 2013-05-07 07:39:17

+0

;缺少你的onclick行 – 2013-05-07 07:41:54

+1

';'不重要 – Jashwant 2013-05-07 07:43:33

0

使用此代码。你的表行必须与价值“TR”的属性名称,以使这项工作:

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