2012-08-27 47 views
1

我使用jQuery的.data()來回傳遞JSON對象。數組中的一個字段是表示日期的字符串。當我把字符串放入.data()函數時,它是一個字符串。當我檢索它時,它是一個js Date對象(並且它不正確的時區信息)。有沒有辦法阻止這種功能?jQuery .data()和存儲日期信息

+2

你能展示你的代碼樣本嗎? (你是通過JSON(一個字符串)還是一個JS對象?) – nnnnnn

+0

看起來像是由於頁面上的另一個組件,而不是$ .data()。抱歉。 –

回答

3

這聽起來像你正在使用HTML5的風格與jQuery。數據(),它不強制值的最佳匹配數據的屬性,看jQuery online docs about .data()

的解決辦法是使用.attr( )方法。

<div id="mydiv" data-two="2"> 

$('#mydiv').data('two') -> 2 // a number 
$('#mydiv').attr('data-two') -> "2" // a string 
+0

在javascript中,html5樣式的數據不會更改爲日期類型。 –

+0

這似乎就是這種情況,這是可以理解的,他們不想走下日期解析的道路。很高興看到Questioner提供的關於這個問題的更具體的代碼。 – chelmerich

+0

這是一個更大的項目的一部分,但我會盡我所能做一個簡單的例子。 –

1

我有完全一樣的東西。

我有下面的代碼:

<div class="datasegment red" data-id="0045" data-name="0045" data-level="red" style="opacity: 1; height: 142.28571428571428px; "> 
     <a class="datavalue" href="#" style="font-size: 24px; ">0045</a> 
    </div> 

和Javascript

var ID = jQuery(this).data("id"); 

當我在現場進行了「0045」,它直接轉化它,我不想要一個整數。

然後我把它改爲:

var ID = ""; 
ID = jQuery(this).attr("data-id"); 

然後它返回正確的「0045」的字符串,因爲我需要它。

在某些情況下,這是一個很大的問題,我還沒有找到一個下降的解決辦法。

hth。 Shaun