防止未定义为一行代码

时间:2016-11-02 10:34:32

标签: javascript

使用document命令有时候不存在。而不是使用像文件包含或类型的控件到一个if语句可以使控件成为一行,如果命令不存在,请采取这样的NA:

document.querySelector('div#name span.fn').textContent || "NA";

2 个答案:

答案 0 :(得分:1)

你可以这样做:

(document.querySelector('div#name span.fn') || {}).textContent || "NA";

如果querySelector调用的计算结果为null,它将返回没有textContent的对象,因此它将返回NA

答案 1 :(得分:0)

为这样的事情创建一个函数。

function getTextContentOrDefault(selector, defaultValue) {
   var element = document.querySelector(selector);
   if (!element) return defaultValue;
   if (!element.textContent) return defaultValue;
   return element.textContent;
}

getTextContentOrDefault('div#name span.fn', 'NA');