jQuery数据属性正在削减前导零

时间:2012-04-18 22:59:38

标签: javascript jquery

我正在尝试使用jQuery获取数据*。我的问题是jQuery将我的数字字符串作为数字读取,因此会丢弃前导零。

HTML

<tr data-string-number="0123456789">... (website layout, jk) ...</tr>

jQuery 1.7.2

var string_number = $('#selector').data('string-number');
// string_number == 123456789
// string_number != '0123456789'

看起来很简单但总是会降低前导零。

data-string-number始终是一个数字,可能有也可能没有前导零。目前它有一个标准长度,但我现在不能说这是否会保持正确。

目前唯一的想法是在前面添加非数字并立即将其删除。这让我感到很难过,让我感到难过。

任何想法都赞赏。

感谢。

4 个答案:

答案 0 :(得分:21)

使用此:

$('#selector').attr('data-string-number')

.data()方法按设计进行数据转换 .attr()方法只是按原样返回属性(作为字符串)。请注意,使用.attr()时,您需要提供包含"data-"前缀的属性的全名。

答案 1 :(得分:2)

我知道这已经过时了,但我有两种方法可以使用.attr()以字符串形式访问数据。

<!-- Force a String by breaking the parser Remove Quotes later
or Use Object Below -->
<li data-tmp='"0123456789"'>Data as a String: </li>
<li data-tmp='{"num":123456789,"str":"0123456789"}'>Data as a Object: </li>

现在您可以使用jQuery .data()方法访问它们。

请参阅此小提琴来说明http://jsfiddle.net/KUrJ2/

答案 2 :(得分:1)

获取标准attr()访问者的属性。

jQuery尝试猜测类型,并在data()属性上使用data-*时对其进行转换。我们知道0中的Number是无效的String而不是{{1}}。

答案 3 :(得分:0)

使用jquery attr()

http://jsfiddle.net/duerq/