我正在尝试使用三元运算符来检查XML元素的值是否为null。如果是,那么我希望变量是一回事。如果没有,那么我希望它返回元素的值。这就是我到目前为止所拥有的。
var rating = data.getElementsByTagName("overall_average")[0].childeNodes[0].length > 0 ? data.getElementsByTagName("overall_average")[0].childeNodes[0].nodeValue : "It is empty";
答案 0 :(得分:13)
下面:
var node = data.getElementsByTagName( 'overall_average' )[0].childNodes[0];
var rating = node ? node.nodeValue : 'It is empty';
请注意,如果data
中没有单个“overall_average”元素,此代码会抛出(错误),因此您可能需要在必要时防范该情况......
答案 1 :(得分:5)
最短路:
var rating = (data.getElementsByTagName('overall_average')[0].childNodes[0] || {}).nodeValue || 'It is empty';
答案 2 :(得分:2)
你的三元手术对我来说很好看。我建议的一件事(为了便于阅读和简洁)是将overall_average
对象定义为变量并在之后引用它。
var overall_average = data.getElementsByTagName("overall_average")[0].childeNodes[0];
var rating = overall_average.length > 0 ? overall_average.nodeValue : "It is empty";
祝你好运!