我有一张有很多排的桌子。在每一行中,都有一个id为覆盖的单元格。如果覆盖包含一个数字
我有javascript,看起来像这样:
$('#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>
由于ID
在页面上必须是唯一的,$(“#overwrite”)
将最多返回一个元素,因此使用类而不是重复的ID
$('.overwrite').each(function() {
if (parseInt($(this).text(), 10) > 0) {
$(this).addClass('records_overwritten');
}
});
此外,如果要检查的列始终是第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>
并使用类选择器代替
$('.overwrite').each(function() {.....
id
属性被假定为页面唯一的,因此jQuery在找到一个页面后仍然停止查找。您可以通过使用以下选择器[id="over写"]
来解决这个问题,但是您真的应该使用类或其他东西。