我的变量todoHtmlLi是未定义的,为什么真的不能得到它。我在将其分配给某些html之前就已经声明了它。我使用console.log()检查优先级值,它工作正常。
$(document).on('click', '#addTodoBtn', function () {
var todoDialog = {
state0: {
html: dialogContent,
buttons: {
Cancel: -1,
Add: 0
},
focus: 1,
submit: function (e, v, m, f) {
e.preventDefault();
var todoHtmlLi;
var todoNameVal;
var todoNoteVal;
//Task Name
todoNameVal = $("#todoName").val();
todoNameVal.trim();
//Note
todoNoteVal = $("#todoNote").val();
todoNoteVal.trim();
//Priority
priority = $("#priority").val();
if ($(priority) === 1) {
todoHtmlLi = "<li style='background:red'><a href='#'>" + todoNameVal + "<input type='checkbox'></a></li>"
} else if ($(priority) === 2) {
todoHtmlLi = "<li style='background:green'><a href='#'>" + todoNameVal + "<input type='checkbox'></a></li>"
} else if ($(priority) === 3) {
todoHtmlLi = "<li style='background:blue'><a href='#'>" + todoNameVal + "<input type='checkbox'></a></li>"
}
if (v == 0) {
if (todoNameVal !== "") {
$("div#tab").find('#todoUl').prepend(todoHtmlLi);
$.prompt.close();
} else {
$("#todoName").focus();
}
} else {
$.prompt.close();
}
}
}
}
$.prompt(todoDialog);
});
if(v == 0){表示单击“是”按钮
最佳答案
首先:您只能将对todoHtmlLi
的返回值(将是一个字符串)与使用val()
(检查类型)的数字进行比较,从而将值分配给===
。
由于"1" === 1
不是true,因此您永远不会分配值。
使用==
,与字符串比较或转换为数字。
第二:您将值作为参数传递给$
,因此您将获得一个jQuery对象而不是该String。这没有任何意义,所以不要这样做。
if (priority == 1){
if (priority === "1"){
if (parseInt(priority,10) === 1){