2013-05-07 61 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"; 
    } 
}