2017-09-26 44 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