2016-10-31 3 views
1

나는 다음과 같은 코드가 있습니다 오류 : 구문 오류, 인식 할 수없는 표현 : #의 JQuery와

$('.questionAlternative').change(function() { 
    var nestedQuestion = $(this).attr('nestedQuestion'); 
    if(nestedQuestion != null || nestedQuestion != "") { 
     $("#"+nestedQuestion).show(); 
    } else { 
     $(this).parent().next('.nestedQuestionContainer').hide(); 
    } 
} 

.questionAlternative

은 예 또는 아니오, 두 개의 라디오 버튼입니다.

내가 아니요로 변경

, 나는 다음과 같은 오류가 발생합니다 :

Error: Syntax error, unrecognized expression: #
throw new Error("Syntax error, unrecognized expression: " + msg);

나는 이유를 이해할 수 없다. nestedQuestion이 비어 있으면 If 문으로 들어갈 수 없습니다. 하지만 어쨌든 그것을하고있는 것처럼 보입니다.

+3

"" "! = null"은 'true'입니다. – Andreas

답변

6

상태가 잘못되었습니다. 그것은 "nestedQuestion가없는 경우 null또는nestedQuestion가 없습니다 ... ""입니다"하지만 그 조건이 "" 마찬가지입니다, 그래서 ""null하지 않습니다 말한다.

변경을 (&&) :

if(nestedQuestion != null && nestedQuestion != "") { 

하거나 모두 null""가 있다는 사실 falsy 사용

if(nestedQuestion) { 

.. 그리고 실제로, attr 것을 어쨌든 null을주지 마십시오. 문자열 (아마도 "" 일 수도 있음) 또는 undefined 만 제공합니다. (하지만 undefined == null이 참이므로 ...)

+0

아, null이 아니란 것을 몰랐습니다. 고맙습니다. – Bryan

+0

@ 브라이언 : :-) 그것은 그것들 중 하나입니다, 그들은 둘 다 위선적입니다, 그러나 그들은 서로에게'=='이 아닙니다. –

관련 문제