我的条件是根据比较值更改表格行的背景颜色。我想整合另一个比较两个单元格的条件,并仅在那些单元格上返回背景颜色。
我已经在桌面上运行了一个循环
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";
感谢您的帮助!
答案 0 :(得分: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
答案 1 :(得分:-1)
你看过Knockout.js了吗?它允许您将值绑定到网格,然后订阅发生在它们上的事件。