我正在使用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
背景颜色为“黄色”,控制台也没有提示“正常工作”
======
答案是他们之间的结合。而不是纠正上面的代码,我将在这里解释错误。
$(this)
而不是$("td")
来循环使用不同的<td>
yellow
background-color
而不是backgroundColor
作为css属性答案 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值发送的。