2012-04-24 13 views
15

Kontrol dışarı bu basit örnek olur on jsfiddleVeri niteliği tamsayı

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

kod

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

ben "00005" ve "S00005" dönmek istiyorum

00005 turns into:5 
S00005 turns into: S00005 

sonuç .

+0

Maalesef @FelixKling, bir dize değil, ihtiyacım olan dize var. Sitemim gerçek '00005' – Larsi

+0

dize. Sorunu anladım, yorumumu sildim. Ancak biraz daha fazla açıklama yardımcı olacaktır;) Örneğin, 'S00005' bir dizgeyi döndürmek için * zorlamak için kullanılır ve bunun '00005'in bir sayıya dönüştürüldüğünü göstermesi gerekir. –

cevap

19

From the jQuery Docs

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

Her girişimi (bu Boolean, sayılar, nesneler, diziler ve null adlı içerir) aksi takdirde olarak bırakılır bir JavaScript değere dizeyi dönüştürmek için yapılır dizi. Değerin özniteliğini dönüştürmek için herhangi bir girişimde bulunmadan bir dize olarak almak için attr() yöntemini kullanın.

+0

Dokümanları da sunduğunuz için çok teşekkürler! – Larsi

+0

Dokümanlar açıkça 'attr() 'ın bir' string' i döndürdüğünü, ancak' code 'gibi basit bir kodun' element.attr '(' data-text ',' 12 ') olduğunu söyler; text = element.attr ('data-text'); 'benim için bir sayı döndürür. Neyi yanlış yapıyorum? – jlh

2

Her teşebbüs halinde bir dize olarak bırakılır bir JavaScript değeri (bu Boolean, sayılar, nesneler, diziler ve null adlı içerir) dize dönüştürmek için yapılır. dizgesini dönüştürmek için herhangi bir girişimde bulunmadan değer özniteliğini almak için attr() yöntemini kullanın.

Buradan: http://api.jquery.com/data/#data-html5

+2

Sanırım @binarious daha hızlıdı :) – ant7

+0

tamam, yine de teşekkürler – Larsi

0

Bu biraz eski bir yazıdır biliyorum ama bu yaklaşım başka bir yoludur verileri bir dizeye öznitelik değeri dönüştürmek için geçerli:

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

veya

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

Bunun nasıl çalışabileceğine dair bazı örnekler:

> (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")}" 

örnekte parantez doğrudan doğrudan numarasına #toString kullanamazsınız, çünkü değişkenler atama orada önlemek için şunlardır: 123.toString(), ancak bunu bir değişkene atanan veya parantez içinde zaman: (123).toString().

Yalnızca null veya undefined değerini bir dizeye dönüştüremeyeceğinizi unutmayın.

Ayrıca ilginç bir şey diziler ve tanımsız ve boş değerleri ile gerçekleşir:

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