我正在学习jQuery atm并且在这里找不到我的错误......实际上“问题”很简单
如果具有“红色”类的td单元具有值> 50,让它变红
jQuery代码
$(document).ready(function(){
var n = $(".red").val();
if (n > 50) {
$(".red").css("color", "red");
}
else {
$(".red").css("color", "blue");
}
});
我必须在这里使用.each()吗?
答案 0 :(得分:1)
首先,td
元素没有val
属性。
需要使用.text
来获取文字
接下来使用 parseInt 将其转换为数字
if (n > 50) {
应该是
if (parseInt(n, 10) > 50) {
但是因为您专门将每个td
设置为特定颜色。您需要使用$.each
迭代列表。您也可以使用.filter
。
// Will return all the `tds` with the value
var $red = $('.red').filter(function() {
return parseInt( $(this).text(), 10) > 50;
});
// Set the red elements to color red
$red.css('color', 'red');
// All `.red` which are not in above selector are selected
$('.red').not($red).css('color', 'blue');
<强> Using Filter Demo 强>
<强> Using Each Demo 强>
答案 1 :(得分:0)
应该这样做......
现场演示:Fiddle
<table id="theTable" border="1">
<tr>
<td class="red">5</td><td class="red">25</td><td class="red">50</td><td class="red">51</td><td class="notRed">105</td>
</tr>
</table>
$(document).ready(function(){
$('#theTable td.red').each(function(){
var cellVal = parseInt($(this).text())
if(cellVal > 50)
$(this).css("background-color","red");
else
$(this).css("background-color","blue");
});
});