10

我正在尝试使用 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总是一个数字,可能有也可能没有前导零。目前它有一个标准长度,但我现在不能说这是否会保持不变。

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

任何想法表示赞赏。

谢谢。

4

4 回答 4

22

用这个:

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

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

于 2012-04-18T23:01:46.917 回答
4

我知道这很旧,但我有 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/

于 2013-02-04T09:16:03.803 回答
1

使用标准访问器获取属性attr()

jQuery 尝试猜测类型并在使用属性时data()对其进行转换。data-*正如我们所知,领先0的在 a 中微不足道,但在 a 中Number却不是String

于 2012-04-18T23:02:15.430 回答
0

使用 jquery attr()

http://jsfiddle.net/duerq/

于 2012-04-18T23:03:45.467 回答