jquery/javascript if-else语句不工作,检测到空文本框

jquery/javascript if-else语句不工作,检测到空文本框,javascript,jquery,Javascript,Jquery,我有以下代码: if ($('#txtEdit').val == '') { window.parent.$('#note' + appid + dbid).html('<img src="images/note_gray.png">'); } else if ($('#txtEdit').val != '') { window.parent.$('#note' + appid + dbid).html('<img src="images/note.png"&g

我有以下代码:

if ($('#txtEdit').val == '') {
    window.parent.$('#note' + appid + dbid).html('<img src="images/note_gray.png">');
} else if ($('#txtEdit').val != '') {
    window.parent.$('#note' + appid + dbid).html('<img src="images/note.png">');
};
if($('#txtEdit').val=''){
window.parent.$('#note'+appid+dbid).html('');
}else if($('#txtEdit').val!=''){
window.parent.$('#note'+appid+dbid).html('');
};
我也试过用一个简单的“else”代替“elseif”。我还尝试了val(null)而不是val=''。在所有情况下,它都会以一种方式工作,但不会以另一种方式工作。例如,现在(如上)如果我在文本框(txtEdit)中放入某个内容,它会将div设置为note.png。但是,清空文本框不会将其更改为note_gray.png


我不熟悉jquery/javascript。抱歉。

您的两个比较都无效。是一个返回字符串的函数。它不是一种财产

if ($('#txtEdit').val() == '') {
    window.parent.$('#note' + appid + dbid).html('<img src="images/note_gray.png">');
} else { // else if unnecessary
    window.parent.$('#note' + appid + dbid).html('<img src="images/note.png">');
};
if($('#txtEdit').val()=''){
window.parent.$('#note'+appid+dbid).html('');
}else{//else如果不需要
window.parent.$('#note'+appid+dbid).html('');
};

两个比较都无效。是一个返回字符串的函数。它不是一种财产

if ($('#txtEdit').val() == '') {
    window.parent.$('#note' + appid + dbid).html('<img src="images/note_gray.png">');
} else { // else if unnecessary
    window.parent.$('#note' + appid + dbid).html('<img src="images/note.png">');
};
if($('#txtEdit').val()=''){
window.parent.$('#note'+appid+dbid).html('');
}else{//else如果不需要
window.parent.$('#note'+appid+dbid).html('');
};
调用
val()

对于parens,作为一种良好的实践,使用
==
==
检查是否相等。

调用
val()


对于parens,作为一种良好的实践,使用
==
==检查是否相等。

Carissimo Alberto,为什么===优于==?(提前感谢!)@roXon——在这种情况下,这不是“更好”,也不是“良好做法”
=
是equals运算符,它使用抽象相等比较算法来比较要计算的表达式。这通常被称为真实的比较
==
是严格相等运算符,并使用严格相等比较算法,该算法包括要比较的表达式的类型,例如
0=='
0==false
均为true,但
0=='
0===false
均为false。请参阅ECMAScript第11.9节。@RobG:在这种情况下,这不是一个好的做法,我是在一般情况下说的。Carissimo Alberto,为什么===优于==?(提前感谢!)@roXon——在这种情况下,这不是“更好”,也不是“良好做法”
=
是equals运算符,它使用抽象相等比较算法来比较要计算的表达式。这通常被称为真实的比较
==
是严格相等运算符,并使用严格相等比较算法,该算法包括要比较的表达式的类型,例如
0=='
0==false
均为true,但
0=='
0===false
均为false。请参阅ECMAScript第11.9节。@RobG:在这种情况下,这不是一个好的做法,我只是在一般情况下说的。