数据属性变为整数

看看这个关于jsfiddle的简单例子

00005 turns into:
S00005 turns into:

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

结果

 00005 turns into:5 S00005 turns into: S00005 

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

尝试

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

来自jQuery文档

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

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

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

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

 $('#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]"