4

こんにちは私はdivに保存されているhtmlデータタグから2つの数字を読んでいます。数字を足し合わせようとすると、文字列として追加されます。とにかく、データ属性に数値を含めて数値としてアクセスしたり、JavaScriptのおかげで文字列以外の数値に変換したりすることはできますか?

<div data-Lon1="1.3" data-Lat1="-1.2"></div>

<script>
   lon1 = $('#zoom1').attr('data-lon1');
   lat1 = $('#zoom1').attr('data-lat1');
   console.log(lat1+lon1);

   //returns '1.3-1.2' (I want .1 in this example)
</script>
4

4 に答える 4

6

使用するだけparseFloat()です:

var lon1 = parseFloat($('#zoom1').attr('data-lon1'));
   lat1 = parseFloat$('#zoom1').attr('data-lat1'));
console.log(lat1+lon1);

JS フィドルのデモ

参考文献:

于 2012-06-25T21:11:37.430 に答える
4

.data()値を基になる型に適切に解析する方法を使用できます。

var lon1 = $('#zoom1').data('lon1');
var lat1 = $('#zoom1').data('lat1');
console.log(lat1 + lon1);

.data()このメソッドを使用すると、完全な属性名を引数として渡すのではなく、接尾辞 - lon1andのみをandlat1の代わりに渡すことに気付くでしょう。data-lon1data-lat1

そして、ここにライブデモがあります: http://jsfiddle.net/E7Av7/

ああ、あなたの質問に投稿されたコードスニペットでこれをするのを忘れているように見えるので、データセレクターが何かを返すように、あなたのdivに正しいIDを与えることを忘れないでください:

<div data-Lon1="1.3" data-Lat1="-1.2" id="zoom1"></div>​
于 2012-06-25T21:11:48.567 に答える
0

というJavaScript関数がありますparseFloat。を使用しparseFloat($("#zoom1").attr("data-lon1")ます。

于 2012-06-25T21:11:22.157 に答える
0

.data()値を解析するために which を使用します。

var lon1 = $('div').data('lon1');
var lat1 = $('div').data('lat1');
console.log(lat1+lon1);

ただし、結果を0.1そこから取得したい場合は、次のようにする必要があります。

console.log( Math.round( ( lat1+lon1 ) * 100000000000 ) / 100000000000 );

それ以外の場合は、0.10000000000000009代わりに取得します0.1

浮動小数点演算は壊れていますか?を参照してください。

http://jsfiddle.net/E7Av7/1/

于 2012-06-25T21:16:38.287 に答える