1

我正在使用 jQuery 的 .data() 来回传递一个 JSON 对象。数组中的字段之一是表示日期的字符串。当我将字符串放入 .data() 函数时,它是一个字符串。当我检索它时,它是一个 js Date 对象(并且它附加了不正确的时区信息)。有没有办法阻止这个功能?

4

2 回答 2

3

It sounds like you're using the HTML5-style data attributes with jQuery .data(), which does coerce the values to the best match, see jQuery online docs about .data()

The work around is to use the .attr() method instead.

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

$('#mydiv').data('two') -> 2 // a number
$('#mydiv').attr('data-two') -> "2"  // a string
于 2012-08-27T23:11:09.513 回答
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。肖恩

于 2012-08-28T04:04:37.793 回答