基于单元格值的颜色行

时间:2013-03-19 21:24:00

标签: javascript

我有一个带有特定列的表,其中单元格只包含“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

 }

2 个答案:

答案 0 :(得分:0)

在Ubuntu的Firefox中运行:jsfiddle

P.S。应该是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;
}

答案 1 :(得分:-1)

工作示例:

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/

相关问题