0

我有一个条件可以根据比较值更改表格行的背景颜色。我想集成另一个比较两个单元格并仅在这些单元格上返回背景颜色的条件。

我已经在桌子上运行了一个循环

            for (i = 0; i < rows.length; i++) {
            cells = rows[i].getElementsByTagName('td');

这就是我所拥有的,但它将颜色结果应用于整个列而不是每个单元格..

         if (cells[10].innertext !== cells[11].innerText)
                cells[10].style.backgroundColor = "red";
                cells[11].style.backgroundColor = "red";

         else 
            (cells[10].innertext == cells[11].innerText)
                cells[10].style.backgroundColor = "green";
                cells[11].style.backgroundColor = "green";

谢谢您的帮助!

4

2 回答 2

0

你有一个大小写问题。第一个innertext应该是innerText。并且必须将多个语句放在一个块中以将它们分组为一个条件。

此外,要在 之后添加条件else,它需要是else if

        //-------------v
     if (cells[10].innertext !== cells[11].innerText) {
            cells[10].style.backgroundColor = "red";
            cells[11].style.backgroundColor = "red";
        //-------------v
     } else if (cells[10].innertext == cells[11].innerText) {
            cells[10].style.backgroundColor = "green";
            cells[11].style.backgroundColor = "green";
     }

虽然逻辑上不需要第二个条件,但您可以将其更改为:

     } else {

此外,.textContent是从元素中获取文本的标准版本。如果您想要更广泛的浏览器支持,您应该执行以下操作:

var text1 = cells[10].textContent || cells[10].innerText
var text2 = cells[11].textContent || cells[11].innerText

...然后使用变量进行比较。


最后,没有必要如此冗长:

cells = rows[i].getElementsByTagName('td');

您可以改用它:

rows[i].cells
于 2013-01-25T21:44:41.867 回答
-1

你看过Knockout.js吗?它将允许您将值绑定到网格,然后订阅发生在它们身上的事件。

于 2013-01-25T21:44:53.567 回答