以下代码仅适用于if statement
,后续else if statements
不会触发。但如果我将所有3个分成个体if statements
,一切正常。我怎么能让他们一起玩得很好呢?
不工作
if ( headingLength < 1 ) {
// show error message
$('.compose-wrap .message-heading .help-block').fadeIn();
} else if ( messageLength < 1 ) {
// show error message
$('.compose-wrap .message-body .help-block').fadeIn();
} else if ( formtagLength < 1 ) {
// show error message
$('.compose-wrap .choose-recipients .help-block').fadeIn();
}
工作
if ( headingLength < 1 ) {
// show error message
$('.compose-wrap .message-heading .help-block').fadeIn();
}
if ( messageLength < 1 ) {
// show error message
$('.compose-wrap .message-body .help-block').fadeIn();
}
if ( formtagLength < 1 ) {
// show error message
$('.compose-wrap .choose-recipients .help-block').fadeIn();
}
答案 0 :(得分:1)
听起来好像是在你不想要的时候运行你的else if
。如果解决了前一个条件中的任何一个,则条件退出,这是预期的行为。
<强>答案强>:
如果你底部的某些东西没有运行你想要运行的东西,那么你可能不希望那个部分在其他内部。如果你需要仔细检查你的逻辑比较运算符,如果你确实需要在else中。例如>
>=
===
==
!=
<=
<
&&
等。切换它们直到你拥有你想要什么。
您也可以将它们合并,例如
if ( headingLength < 1 ) {
// show error message
$('.compose-wrap .message-heading .help-block').fadeIn();
} else if ( (messageLength < 1) && headingLength >=1 ) {
// show error message
$('.compose-wrap .message-body .help-block').fadeIn();
} else {
console.log('wasnt one of the above yet, rinse and repeat...');
}
此外,最好以最后的其他方式结束,也许使用控制台日志,直到你拨入。
答案 1 :(得分:1)
你可能有条件headingLength < 1
和messageLength < 1
,但你不能让第二个运行。 ELSE IF 应该在逻辑上用于非会议条件。