2011-10-23 4 views
2

문자열의 일부가 변수 json[i].has_dishwasher에 값이 있는지 여부에 따라 달라지는 문자열이 있습니다. 값이 포함되어 있으면 class="selected"이 html 문자열에 추가됩니다. 내 코드를 더 짧게 만들려면 (실제로는 아래에 나와있는 긴 코드 시리즈가 있음) 3 진수 if 연산자를 사용할 계획입니다.구문의 중간에있는 삼항 연산자

문제 : 내가 사용하는 터너리 if 조건문은 유효하지 않은 자바 스크립트입니다. 어떻게 이것을 유효하게 할 수 있습니까?

자바 스크립트 코드

html = '<div class="amenities"' + (json[i].has_dishwasher ? +'class="selected"'+) \ 
+ '>Dishwasher' + json[i].has_dishwasher + '</div>'; 

답변

2

당신은 삼항의 "트라이"부분을 추가해야합니다, 그리고 그것은 연결 (+) 연산자를 포함하지, 단지 문자열을 반환해야합니다.

... + (json[i].has_dishwasher ? 'class="selected"' : '') + ... 

하지만 실제로 원하는 것은 아닙니다. 그러면 두 개의 분리 된 "클래스"속성이 남게됩니다.

var classVal = "amenities" + (json[i].has_dishwasher ? " selected" : ""); 

을하거나 조건에서 그것을 청소 유지 : 나는 아마 HTML 문자열의 창조에서 떨어져 "클래스"속성의 ​​값을 만들 것입니다.

var classVal = "amenities"; 
if (json[i].has_dishwasher) classVal += " selected"; 

html = '<div class="' + classVal + '>Dishwasher' 
    + json[i].has_dishwasher + '</div>'; 
1
html = '<div class="amenities"' + (json[i].has_dishwasher ? ' class="selected"' : '') + '>Dishwasher' + json [i].has_dishwasher + '</div>';