对jQuery非常新,我无法弄清楚为什么这小段代码无法正常工作。我将主体的背景设置为黑色,但始终返回else语句,并且背景变为橙色而不是所需的粉红色。
$(document).ready(function(){
$("body").css("background","black");
if ($("body").css("background") == "black") {
$("body").css("background", "pink");
}
else {
$("body").css("background", "orange");
}
});
您可以在这里查看发生了什么:http://jsfiddle.net/jH6Y9/1/
最佳答案
您不能只要求复合CSS样式,例如“ background”;该值返回为空字符串。要求“背景色”。 (编辑-Firefox给了我空字符串;其他浏览器可能会为您构造整个组合的背景属性。)
现在,一旦解决了这个问题,您将发现报告的颜色不会是“黑色”。这将是表示“黑色”的其他颜色语法。
与其依靠样式机制来跟踪正在发生的事情,不如使用一个类:
$("body").addClass("black");
if ($("body").hasClass("black"))
$("body").addClass("pink");
else
$("body").addClass("orange");
然后在您的CSS中:
body.black { background-color: black; }
body.pink { background-color: pink; }
body.orange { background-color: orange; }
更好的是,对页面状态使用一些在语义上有意义的名称,而不是颜色名称,这样,如果您以后改变主意,并且希望背景从狗变成小猫,该代码仍然有意义。
关于javascript - jQuery if/else语句不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24922980/