Атрибут данных становится целым
Посмотрите этот простой пример на 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".
Ответы
Ответ 1
Попробуйте
$('#a').append($('#a').attr('data-siteid'));
$('#b').append($('#b').attr('data-siteid'));
Из документов jQuery
Производится попытка преобразования строки в значение JavaScript (это включает в себя логические значения, числа, объекты, массивы и нуль), в противном случае она остается в виде строки. Чтобы получить атрибут value как строку без какой-либо попытки его преобразования, используйте метод attr().
Ответ 2
Производится каждая попытка преобразовать строку в значение JavaScript (это включает в себя логические значения, числа, объекты, массивы и null) в противном случае он остается как строка. Чтобы получить атрибут value как строку без какой-либо попытки его преобразования, используйте метод attr().
Отсюда: http://api.jquery.com/data/#data-html5
Ответ 3
Я знаю, что это немного старше пост, но другой способ, которым вы можете это сделать, - преобразовать значение атрибута данных в строку:
$('#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")}"
Скобки в этом примере должны избегать назначения переменных, поскольку вы не можете напрямую использовать #toString
для числа непосредственно: 123.toString()
, но вы можете, когда оно назначено переменной или заключено в круглые скобки: (123).toString()
.
Просто помните, что вы не сможете преобразовать нуль или undefined в строку.
Также происходит что-то интересное с массивами и undefined и нулевыми значениями:
> (["bob", 123, true, null, undefined, this]).toString()
"bob,123,true,,,[object Window]"