如何使用jquery将td的总背景颜色设置为红色?

时间:2015-09-28 04:37:32

标签: jquery

我尝试使用下面的代码来获取设置为红色但不起作用的背景颜色的td总数。

     $("#totalBackgroundTdRed").css("background","red").length;

正确的长度应该是25 td,谁的背景颜色设置为红色,但上面的代码显示为1.

    $("#findRows").live("click", function(event)
    {
        var findArray = [];
        $(".findText").each(function()
        {   
           findArray.push($.trim($(this).text()));  
        });    

        var findArrayLength = findArray.length;
        var pattern = /^(?:[0-9]+\.\s+)?(.*):/;

        $("#logTable tr").find(".column2").each(function(event)
        {   
           var patternResults = pattern.exec($.trim($(this).text()));

           for(var i = 0; i < findArrayLength; i++)
           {            
              if(patternResults[1] == findArray[i])
              {
                 var $currentTR = $(this).closest("tr");
                 $currentTR.find(".inputTD").css("background","red");
                 $currentTR.find(".inputTD input").prop("checked", true);
              }
           }    
        });
           alert($("#totalBackgroundTdRed").css("background","red").length);
    });

2 个答案:

答案 0 :(得分:2)

您的代码中有两个问题。

1)您有td元素的重复ID,即totalBackgroundTdRed。 ID应该是唯一的。您可以使用与classname相同的值,然后使用类选择器来定位它们。

$(".totalBackgroundTdRed")

2)您需要使用过滤功能根据条件过滤掉元素:

 var columns = $('.totalBackgroundTdRed').filter(function(){
   var color = $(this).css("background-color").toLowerCase();
   return color === "#FF0000" || color === "rgb(255, 0, 0)" ;
 });
 alert(columns.length); // 25 

答案 1 :(得分:0)

你应该使用class而不是id,从逻辑上讲你应该遵循完美的@Milind回答。 因为Id是应该在页面中包含唯一值的属性,但是您为许多TD分配相同的ID,因此在这种情况下更好地使用类。