(基本)寻找验证setText()函数的Javascript代码
问题描述:
我正在学习一本书中的JavaScript基本内容。任何人都可以请帮助我,我真的很困惑我应该使用什么代码,以便setText()函数验证目标HTML ID是否存在。我知道这将是非常简单的事情,但我对此很陌生。这里是我的JS代码:(基本)寻找验证setText()函数的Javascript代码
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;
感谢
答
......从而使的setText()函数验证目标HTML ID存在...
如果它不”吨,您将从getElementById
收到null
。所以,你可以使用在if
(因为null
是 “falsy” *),看到***
行:
var output = document.getElementById(elementId);
if (output) { // ***
if (output.textContent !== undefined) {
output.textContent = message;
} else {
output.innerText = message;
}
}
* “falsy”:A “falsy” 值是强制转换到false
值当你在一个条件下使用它。 “truthy”值是强制为true
。虚假值为null
,undefined
,0
,""
,NaN
,当然还有false
;所有其他值(包括所有非对象引用)都是真实的。
+0
感谢它的工作。 – Shiv
只是为了避免检查textContent是否是浏览器的一部分。所有安全/主流浏览器都有这个功能。 – GottZ
你只是想检查'output'是否是'undefined'? – David
btw ..检查了这一点:https://dorey.github.io/JavaScript-Equality-Table/#if-statement – GottZ