2017-09-16 36 views
0

下面的代碼將輸出在Firefox和不確定在其他瀏覽器。抓鬥日期時間(不只是在Firefox)

document.getElementById('output').textContent = typeof document.getElementsByTagName('time')[0].dateTime
<time datetime="2008-02-14 20:00">Time</time> 
 
<br/>Output: <b><span id="output"></span></b>

由於w3schools shows,這是因爲只有Firefox支持日期時間屬性。

那麼<時間>仍然可以在其他瀏覽器的JS中讀取?

回答

3

你可以這樣做

document.querySelector('#output').textContent = document.querySelector('time').getAttribute("datetime"); 
 

 
console.log(document.querySelector('time').getAttribute("datetime"));
<time datetime="2008-02-14 20:00">Time</time> 
 
<br/>Output: <b><span id="output"></span></b>

+0

很好的答案。清晰,準確,並允許運行代碼。告訴我:是否有任何理由讓Firefox獲得特殊待遇,如果它支持這種方式呢? – LWC

2

根據MDN<time>標記不僅在firefox中,而且在chrome(> = 62)和edge中也不受支持,但是在所有IE版本中都有問題。

如果您只需要花時間在DOM中的其他元素中顯示它,則不需要該代碼。你可以使用:

document.getElementById('output').textContent = '2008-02-14 20:00'; 

關於你的代碼,刪除typeof你那裏,如果你需要datetime屬性的值,你可以使用getAttribute('datetime') - 它應該在其他瀏覽器正常工作。

+0

是的,但是請注意,我寫了 「只有Firefox支持的** **日期時間屬性」。 – LWC

+0

**所有瀏覽器中的'time'元素都支持**屬性,但是您只能在firefox上直接訪問**。 – Dekel

+0

我一直提及[日期時間屬性](https://www.w3schools.com/jsref/prop_time_datetime.asp),而我相信你指的是[日期時間屬性](https://www.w3schools.com/標籤/ att_time_datetime.asp)。 – LWC