Когда пользователь нажимает кнопку "Обзор", появляется надпись, показывающая, какие поля формы еще должны быть удовлетворительно завершены. У меня есть массив объектов, который отслеживает каждое поле формы и присваивает этому элементу формы "проверенный" или "непроверенный".
В пределах наложения те поля, которые непроверены, должны отображаться с красным цветом фона, а те, которые были проверены, зеленым. Кроме этого, либо "Завершить", либо "Не завершать" появится как подходящее рядом с каждой ссылкой поля формы.
Когда я запускаю следующий код, появляется надпись "Complete"/"Not complete", однако цвет остается красным. Я не понимаю, как одна переменная внутри оператора 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);
});
});
$("#cl.td-left").css("background-color", color);
обновляет все элементы, которые соответствуют, а не только тот, который вы недавно добавили. Попробуйте настроить только новый.
$("#cl .td-left:last").css("background-color", color);
или еще лучше, отредактируйте его, прежде чем добавлять его.
$("<tr><td class='td-left'>"+element.review+"</td><td class='td-right'>"+status+"</td></tr>")
.css("background-color", color)
.appendTo("#cl");
color
в консоли? Я думаю, что это нормально, но ваш селектор jquery не так.color
в каждом случае.