jQuery样式是否满足a的某些值要求

时间:2013-08-06 23:17:27

标签: jquery css if-statement selector html-table

我正在学习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()吗?

2 个答案:

答案 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

HTML

<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>

的jQuery

$(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");
    });
});