我有以下代码:
$('.questionAlternative').change(function() {
var nestedQuestion = $(this).attr('nestedQuestion');
if(nestedQuestion != null || nestedQuestion != "") {
$("#"+nestedQuestion).show();
} else {
$(this).parent().next('.nestedQuestionContainer').hide();
}
}
.questionAlternative是两个radiobuttons,是或否。
当我改为No时,我收到以下错误:
错误:语法错误,无法识别的表达式:#
抛出新错误("语法错误,无法识别的表达式:" + msg);
我无法理解为什么。如果nestedQuestion为空,则不应进入If语句。但它似乎还在做它吗?
答案 0 :(得分:6)
你的病情有误。它说“如果nestedQuestion
不是null
或 nestedQuestion
不是""
...”但""
不是{{ 1}},因此null
的条件为真。
将其更改为和(""
):
&&
或仅使用if(nestedQuestion != null && nestedQuestion != "") {
和null
falsy 的事实:
""
..实际上,if(nestedQuestion) {
永远不会给你attr
。它只会给你一个字符串(可能是null
)或""
。 (但undefined
是真的,所以......)