数据属性变为整数

时间:2012-04-24 11:30:02

标签: jquery

查看这个简单示例on jsfiddle

<div id ="a" data-siteid="00005">00005 turns into:</div>
<div id="b" data-siteid="S00005">S00005 turns into: </div>

$('#a').append($('#a').data("siteid"));
$('#b').append($('#b').data("siteid"));

结果

00005 turns into:5
S00005 turns into: S00005

我想返回“00005”和“S00005”。

3 个答案:

答案 0 :(得分:29)

尝试

$('#a').append($('#a').attr('data-siteid'));
$('#b').append($('#b').attr('data-siteid'));

From the jQuery Docs

  

每次尝试都将字符串转换为JavaScript值(包括布尔值,数字,对象,数组和null),否则将其保留为字符串。要将值的属性检索为字符串而不尝试转换它,请使用attr()方法。

答案 1 :(得分:3)

  

每次尝试都将字符串转换为JavaScript值   (否则,这包括布尔值,数字,对象,数组和null)   它留作一个字符串。要将值的属性检索为字符串   如果没有尝试转换它,请使用attr()方法。

从这里开始:http://api.jquery.com/data/#data-html5

答案 2 :(得分:1)

我知道这是一篇稍微过时的帖子,但另一种方法是将数据属性值转换为字符串:

$('#a').data("siteid").toString()

$('#a').data().siteid.toString()

一些如何运作的例子:

> (12345).toString()
"12345"

> (14.5).toString()
"14.5"

> (-14.5).toString()
"-14.5"

> "bob".toString()
"bob"

> (true).toString()
"true"

> ({a: "b"}).toString()
"[object Object]"

>(function(){console.log("bob")}).toString()
"function (){console.log("bob")}"

示例中的括号是为了避免分配变量,因为您不能直接在数字上直接使用#toString123.toString(),但是当它分配给变量或括在括号中时: (123).toString()

请记住,您无法将null或undefined转换为字符串。

对于数组以及未定义和空值也会发生一些有趣的事情:

> (["bob", 123, true, null, undefined, this]).toString()
"bob,123,true,,,[object Window]"