2014-02-16 26 views
2

根據此鏈接mozilladata-屬性用於設置DOM中的數據。我想用new Date().getTime()來抓取時間,並將其附加到DOM中的元素。如何將時間信息直接設置到DOM中?

在JavaScript中這樣做的正確方法是什麼?它只是一個簡單的div元素,我想設置一個名爲data-time的屬性。

Pseduo代碼將是:

div_element.data時間=新日期()的getTime();

回答

2

如果你設置和獲取使用腳本的價值,DOM屬性是罰款:

div_element['data-time'] = +(new Date()); 
+0

,當然我也可以使用點符號? –

+0

只能使用點符號表示有效標識符的屬性名稱,* data-time *不是因爲連字符。 – RobG

2

如果你想在所有的瀏覽器的支持,您可以使用setAttribute()設置時間爲DOM元素的屬性:

div_element.setAttribute("data-time", new Date().getTime()); 
+0

@ user3294399 - 對於自定義屬性名稱,您可以使用DOM屬性名稱來獲取和設置,或者您可以使用'setAttribute()'和'getAttribute()'。你不能混合這兩種技術。如果你想模擬一些實際在HTML中的東西,那麼你應該使用'setAttribute()/ getAttribute()'。如果沒有,你可以使用任一對。但是,使用'setAttribute()'設置的自定義屬性不能通過直接DOM屬性讀取,反之亦然。所有瀏覽器都不支持 – jfriend00

2

您應該使用dataset API

divElement.dataset.time = new Date().getTime(); 

Support雖然不完美,所以要注意。 IE11 +。如果您需要支持恐龍,請使用setAttribute方式。

+0

數據集。 –

+0

我沒有downvote,但一個說明OP。這需要IE 11或更高版本。 – jfriend00

+0

我正要發佈支持信息。 – dfsq

0

爲不同瀏覽器的答案的衆多建議其中的jQuery喜歡做門面模式。

相關問題