我正在从书中学习JavaScript基础知识。任何人都可以帮助我,我真的很困惑我应该使用什么代码,以便setText()函数验证目标HTML ID是否存在。我知道它会变得非常简单,但我对此不熟悉。这是我的JS代码:
function setText(elementId, message) {
'use strict';
if ( (typeof elementId == 'string')
&& (typeof message == 'string')||(typeof message == 'number')
&& (typeof elementId !== '')
&& (typeof message !== '') ) {
var output = document.getElementById(elementId);
if (output.textContent !== undefined) {
output.textContent = message;
} else {
output.innerText = message;
}
}
}
function init() {
'use strict';
var today = new Date();
var message = 'Right now it is ' + today.toLocaleDateString();
message += ' at ' + today.getHours() + ':' + today.getMinutes();
setText('output', message);
}
window.onload = init;
由于
答案 0 :(得分:0)
...以便setText()函数验证目标HTML id是否存在......
如果没有,您将从null
收到getElementById
。所以你可以在if
中使用它(因为null
是“falsy”*),请参阅***
行:
var output = document.getElementById(elementId);
if (output) { // ***
if (output.textContent !== undefined) {
output.textContent = message;
} else {
output.innerText = message;
}
}
*“falsy”:“falsy”值是在条件中使用时强制为false
的值。 “truthy”值是强制true
的值。虚假值为null
,undefined
,0
,""
,NaN
,当然还有false
;所有其他值(包括所有非null
对象引用)都是真实的。