Javascript 有条件地更改表格单元格的背景色
我有一张有许多行的桌子。每行中都有一个id为“overwrite”的单元格。如果覆盖包含一个大于0的数字,我想将单元格的背景色更改为红色 我使用的javascript如下所示:Javascript 有条件地更改表格单元格的背景色,javascript,html,css,Javascript,Html,Css,我有一张有许多行的桌子。每行中都有一个id为“overwrite”的单元格。如果覆盖包含一个大于0的数字,我想将单元格的背景色更改为红色 我使用的javascript如下所示: $('#overwrite').each(function() { if (parseInt($(this).text()) > 0) { $(this).addClass('records_overwritten'); } }); 这只会更改一个单元格的背景色,而不会更改其他单元
$('#overwrite').each(function() {
if (parseInt($(this).text()) > 0) {
$(this).addClass('records_overwritten');
}
});
这只会更改一个单元格的背景色,而不会更改其他单元格的背景色,即使它们也包含大于0的值。我有点搞不清楚问题是什么
以下是表格行的示例:
<tr>
<td>March 18, 2014</td>
<td>John Smith</td>
<td>5</td>
<td>10</td>
<td id="overwrite">1</td>
<td>56</td>
</tr>
2014年3月18日
约翰·史密斯
5.
10
1.
56
假定id
属性对于页面是唯一的,因此jQuery仍然会停止查找页面。您可以使用下面的选择器[id=“overwrite”]
来解决这个问题,但您确实应该使用类或其他东西。因为id
在页面上必须是唯一的,$(“#overwrite”)
将返回最多一个元素-使用类而不是重复的id
$('.overwrite').each(function() {
if (parseInt($(this).text(), 10) > 0) {
$(this).addClass('records_overwritten');
}
});
此外,如果要检查的列始终是每行的第5个
,您还可以避免插入不必要的属性,并且可以使用$('trtd:nth child(5)')检索这些元素
还要注意的是,parseInt
需要一个基数作为第二个参数将id更改为class
<tr>
<td>March 18, 2014</td>
<td>John Smith</td>
<td>5</td>
<td>10</td>
<td class="overwrite">1</td>
<td>56</td>
</tr>
ID在页面上是唯一的,所以$('#ID')。每个都不是一个好主意。也许您可以使用class或attr值进行标识
关于背景设置:这里最接近()是一个很好的解决方案
$(.overwrite”).closest(“tr”).css(“背景色”、“红色”)代码>在一个文档中只能使用一个ID值。ID应该是唯一的。问题是重复的ID Fabrizio,我将您的代码(和他的代码)放入了一个文件夹中。它仍然不起作用。如果您想调整它,使其正常工作,并将其添加到您的答案中,可能会对Graham有很大帮助。@Thomas如果您使用jQuery代码,则必须包含jQuery库。现在,在你的小提琴中没有包含任何库;)谢谢,我添加了它,它很有效。链接是http://jsfiddle.net/F2Q3V/1/
。如果你愿意,你可以把它添加到你的答案中。希望格雷厄姆会选择你的答案。
$('.overwrite').each(function() {.....