1

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

 }
4

2 回答 2

0

在 Ubuntu 上的 Firefox 中工作: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;
}
于 2013-03-19T21:46:31.353 回答
-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/

于 2013-03-19T21:33:27.370 回答