2012-04-24 8 views
15

チェックアウトこの簡単な例になります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" と "S00005" を返したい

00005 turns into:5 
S00005 turns into: S00005 

結果。

+0

申し訳@FelixKling、それは文字列ではなく、私は必要な文字列です。私のsiteid実際の文字列 '00005' – Larsi

+0

ええ...あなたの質問を理解し、私のコメントを削除しました。文字列を返すために 'S00005'が使用され、' 00005'が数値に変換されることが示されているはずです。 –

答えて

19

それ以外の場合は次のように残っている(これはブール値、数値、オブジェクト、配列、およびヌルを含んで)すべての試みはJavaScript値に文字列を変換するために作られ

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

From the jQuery Docs

をお試しください文字列。値の属性を変換しようとすることなく文字列として取り出すには、attr()メソッドを使用します。

+0

docを提供してくれてありがとう! – Larsi

+0

文書は明らかに 'attr()'は 'string'を返しますが、' element.attr( 'data-text'、 '12')のような単純なコードを返します。 text = element.attr( 'data-text'); 'は私のために数値を返します。私は間違って何をしていますか? – jlh

2

すべての試みは、そうでなければ それが文字列として残されているJavaScriptの値 (これはブール値、数値、オブジェクト、配列、およびNULLを含む)に文字列を変換するために行われます。値の属性を変換することなく文字列 として取得するには、attr()メソッドを使用します。

はここから:http://api.jquery.com/data/#data-html5

+2

私は@binariousが速かったと思っています:) – ant7

+0

ok、とにかく – Larsi

0

私は、これは少し古い記事ですけど、あなたはこれに近づくことができる別の方法は、データを文字列に属性値を変換することです:

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

または

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

これがどのように機能するかの例:

、しかし、あなたはそれが変数に割り当てられたか、括弧で囲まれたことができたとき: (123).toString()あなたが直接、直接数に #toStringを使用することはできませんので、3210
> (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")}" 

例では括弧は、変数の割り当てがないようになっています。

nullまたはundefinedを文字列に変換することはできません。

また何か面白いものが配列し、未定義とnull値で発生します:

> (["bob", 123, true, null, undefined, this]).toString() 
"bob,123,true,,,[object Window]" 
関連する問題