2013-03-19 152 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; 
} 
相关问题