2012-07-20 3 views
6

XML 요소의 값이 null인지 확인하기 위해 삼항 연산자를 사용하려고합니다. 그렇다면 나는 변수를 한 가지만 원한다. 그렇지 않다면 요소의 값을 반환하고 싶습니다. 이것은 내가 지금까지 가지고있는 것이다. 여기삼항 연산자를 사용하여 변수 설정

var rating = data.getElementsByTagName("overall_average")[0].childeNodes[0].length > 0 ? data.getElementsByTagName("overall_average")[0].childeNodes[0].nodeValue : "It is empty"; 

답변

5

가장 짧은 방법 :

var rating = (data.getElementsByTagName('overall_average')[0].childNodes[0] || {}).nodeValue || 'It is empty'; 
+0

설명해주세요. – mplungjan

+0

@mplungjan, 필자는 예제에서'||'연산자를 사용하여 null을 확인했습니다. 그래서, 당신이 이런 식으로하면 :'var x = null || {}; 그러면 x는'null' 대신 빈'object'가됩니다. 프로퍼티도'||'를 사용할 수 있습니다 :'var x = {} .someProp || 'hello';', x는''hello ''가됩니다. –

+0

감사! 이 변수가 삼항 연산자의 숫자인지 어떻게 확인할 수 있습니까? –

11

:이 코드는 경우 (오류)가 발생하면 필요한 경우 그 경우를 방지 할 수 있도록 하나의 "overall_average"요소가 data에 없는지

var node = data.getElementsByTagName('overall_average')[0].childNodes[0]; 
var rating = node ? node.nodeValue : 'It is empty'; 

주 ...

+0

은 평가의 값으로 NaN이 던져하고 있습니다. –

+0

왜 그렇게 할 수 있는지 모르겠습니다. 우리는 단순히 노드를 참조하고 nodeValue에 접근합니다. 나는 break-point를 설정하고'node'가 노드 참조인지 확인하는 것이 좋습니다 ... –

+0

고마워요. 나는 그랬어. 등급 변수를 반올림하려고하는 플러그인이 있습니다. 코드 된 것을 익명의 함수로 옮겨서 트릭을 만들었습니다. 나중에 참조 할 수 있겠지만, 변수가 숫자인지 확인하고 결과를 기반으로 무언가를 뱉어내는 법을 알고 있습니까? 다시 삼항 연산자를 사용하는 것을 선호합니다. –

1

내 삼항 조작은 나에게 잘 보입니다. 내가 제안하고자하는 한 가지는() 객체를 변수로 정의하고 참조하는 것입니다 (가독성과 간결성을 위해).

var overall_average = data.getElementsByTagName("overall_average")[0].childeNodes[0]; 
var rating = overall_average.length > 0 ? overall_average.nodeValue : "It is empty"; 

행운을 비네!

+0

감사합니다. 이것은 의미가 있지만, 내가 설정하려고하는 변수 당 두 줄이 될 요소 목록을 통해 실행 중이다. –

관련 문제