我有一个表格,最左边的列中有文字,所有其他列中都有数字。如何根据细胞中的数量为细胞着色?我想为负数设置background-color =“red”并忽略其中带有文本的列,并忽略其中带有正数的单元格。
下面是我从另一个问题中获取并稍微修改过的代码,但它似乎不起作用。
var allTableCells = document.getElementsByTagName("td");
for(var i = 0, max = allTableCells.length; i < max; i++) {
var node = allTableCells[i];
var currentVal = node.childNodes[0].nodeValue;
if(currentVal.toFixed){
if (currentVal <0)
node.style.backgroundColor = "red"; // -ive number
} else{
// do nothing, the cell has text
}
}
答案 0 :(得分:1)
您应该解析数字:
var allTableCells = document.getElementsByTagName("td");
for(var i = 0, max = allTableCells.length; i < max; i++) {
var node = allTableCells[i];
var currentVal = parseFloat(node.childNodes[0].nodeValue);
if(currentVal!=NaN){
if (currentVal <0)
node.style.backgroundColor = "red";
}
}
或者更好的jQuery&amp;的CSS:
脚本:
$("td").filter(function(c){
var num=parseFloat(this.innerText);
return num!=NaN && num < 0;
}).addClass("neg");
或
$("td:contains('-')").addClass("neg");
CSS:
.neg{
background-color: red;
}