【发布时间】:2013-11-29 06:16:45
【问题描述】:
当用户点击“审核”按钮时,会出现一个叠加层,向他们显示哪些表单字段尚未令人满意地完成。我有一个对象数组,它跟踪每个表单字段,并将“已验证”或“未验证”分配给该表单元素。
在叠加层中,未验证的字段应显示为红色背景色,已验证的字段应显示为绿色。除此之外,“完成”或“未完成”会酌情出现在每个表单字段参考旁边。
当我运行以下代码时,会出现正确的“完成”/“未完成”标签,但颜色仍为红色。我不明白 if 语句中的一个变量如何更新(状态)而另一个不是(颜色)。
我的代码如下:
$("#review").click(function() {
var status = "";
var color = "";
//Show the modal dialog
showModal(dialog);
//Determine the content of the modal dialog
$("#cl").empty();
$.each(object, function(key, element) {
if (element.status == "unverified") {
status = "Not complete";
color = "#ef8f8b";
} else {
status = "Complete";
color = "#bfef8b";
}
$("#cl").append("<tr><td class='td-left'>"+element.review+"</td><td class='td-right'>"+status+"</td></tr>");
$("#cl .td-left").css("background-color", color);
});
});
【问题讨论】:
-
你在控制台中查看
color的值了吗?我的猜测是没问题,但是你的 jquery 选择器是错误的。 -
是的,我在控制台中进行了检查,在每种情况下我都得到了
color的正确值。 -
在这种情况下,您可以编辑您的问题以澄清您的问题,因为这两个变量实际上都按预期进行了更改:)
标签: jquery variables if-statement each