2017-09-26 43 views
0

我正在学习一本书中的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; 

感谢

+0

只是为了避免检查textContent是否是浏览器的一部分。所有安全/主流浏览器都有这个功能。 – GottZ

+0

你只是想检查'output'是否是'undefined'? – David

+0

btw ..检查了这一点:https://dorey.github.io/JavaScript-Equality-Table/#if-statement – GottZ

回答

0

......从而使的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