2013-03-19 246 views
0

我有一個特定列的表格,其中單元格只包含「R」,「N」或「Y」。我想根據上述任何一個值對行進行着色。任何意見將是有益的基於單元格值的顏色行

這裏是我有什麼,但它不改變行顏色

var rows = document.getElementById("trans_separate").getElementsByTagName("tbody") 
    [0].getElementsByTagName("tr"); 

    // loops through each row 
    for (i = 0; i < rows.length; i++) {cells = rows[i].getElementsByTagName('td'); 

      if (cells[14].innerText == R) 
       rows[i].className = "red"; 

      else if (cells[14].innerText == Y) 
       rows[i].className = "Yellow"; 

      else if (cells[1].innerText == N) 
       null 

} 
+1

'if(cells [14] .innerText =='R')...' – inser 2013-03-19 21:26:29

+0

控制檯應該直接指示您回答問題。如果您打算使用Javascript,學習如何使用控制檯以及Chrome Debugger或FireBug是非常重要的。 – mawburn 2013-03-19 21:27:47

+0

你真的需要取出tbody然後tr然後單元格?我想'document.getElementById(「trans_separate」)。getElementsByTagName('td')'就足以獲得你需要的所有單元格。 – lupatus 2013-03-19 21:30:04

回答

-2

工作例如:

var rows = document.getElementById("trans_separate").getElementsByTagName("tbody") 
    [0].getElementsByTagName("tr"); 

    // loops through each row 
    for (i = 0; i < rows.length; i++) {cells = rows[i].getElementsByTagName('td'); 

      if (cells[0].innerHTML == 'R') 
       rows[i].className = "red"; 

      if (cells[0].innerHTML == 'Y') 
       rows[i].className = "yellow";   
} 

http://jsfiddle.net/mMFwQ/4/

+0

當然可以嗎? – 2013-03-19 21:36:55

+0

它適合我。不是嗎?檢查jsfiddle – inser 2013-03-19 21:38:51

+0

'if(cells [0] .textContent ==='R')rows [i] .className =「red」;' – 2013-03-19 21:40:18

0

在Firefox在Ubuntu:jsfiddle

ps應該是else-if。如果裏面的文字是'R',那麼你不應該評估'Y'

var rows = document.getElementById("trans_separate").getElementsByTagName("tbody")[0].getElementsByTagName("tr"); 

for (i = 0; i < rows.length; i++) { 
    row = rows[i].getElementsByTagName('td'); 
    var cell = getText(row[0]); 
    if (cell === 'R') rows[i].className = "red"; 
    else if (cell === 'Y') rows[i].className = "yellow"; 
} 

function getText(cell) { 
    return (cell.innerText == undefined) ? cell.textContent : cell.innerText; 
} 
相關問題