如何使用jQuery CSS选择器设置背景颜色

时间:2015-11-04 11:51:04

标签: jquery css

我正在使用jQuery和JavaScript来遍历<td>中的<table>并计算背景颜色为“黄色”的<TD>,但问题是它不工作,我真的不确定如何。

我首先想到的是因为我在if语句中使用了background-color而不是backgroundColor

if ($("td").css("background-color") == "yellow") {

但是在互换它们之后它仍然不起作用。我正在使用.each()函数来获取所有<td>.each()函数确实有效,因为它正在计算42 <td>这是正确的,但是当我实现CSS检查器时,它不起作用(没有报告错误)。

 $.ajax({
    url: "api/submit-red.php",
    type: "POST",
    data: $(".submit-move").serialize(),
    success: function(result){
        $("td").each(function() {
            if ($("td").css("backgroundColor") == "yellow") {
                console.log("working");
            }
        });
       }
 });

即使td背景颜色为“黄色”,控制台也没有提示“正常工作”

======

答案是他们之间的结合。而不是纠正上面的代码,我将在这里解释错误。

  • 我需要在if语句中使用$(this)而不是$("td")来循环使用不同的<td>
  • 我需要使用RGB而不是要求空白的颜色名yellow
  • 我需要使用background-color而不是backgroundColor作为css属性

3 个答案:

答案 0 :(得分:1)

您的代码中有两个问题:

1)使用当前上下文this来定位每个上下文中的当前元素。

2)您将获得rgb格式的返回颜色。你需要将它转换为名称进行比较。或与rgb值比较

$("td").each(function() {
   if ($(this).css("backgroundColor") == "rgb(255, 255, 0)") {
      console.log("working");
   }
});

答案 1 :(得分:0)

$("td").each(function() {
     if ($(this).css("background-color") == "yellow") {
         console.log("working");
       }
   });
}

答案 2 :(得分:0)

它不起作用,因为如果你进行检查,$('div').css('backgroundColor')的实际值不是“黄色”,而是rgb(255, 255, 0)结果似乎是作为RGB值发送的。