web-dev-qa-db-ja.com

jQueryはテキストを数値として取得します

このコードは機能しません:

_var number = $(this).find('.number').text();
var current = 600;
if (current > number){
     // do something
}
_

HTML:

_<div class="number">400</div>
_

text()をテキストのような値から数値に変換する際に問題があるようです。

解決策は何ですか?

33
James

常にparseIntを2番目のパラメーターとして基数(ベース)と共に使用すると、予期しない結果が得られます。

_var number = parseInt($(this).find('.number').text(), 10);
_

ただし、一般的なバリエーションは、単一演算子として_+_を使用することです。これは常にベース10で変換され、エラーをスローすることなく、単に戻ります。 ゼロ NaNは、関数isNaN()でテストできます。無効な数値の場合:

_var number = +($(this).find('.number').text());
_
109
RoToRa

myInteger = parseInt(myString);

これは標準のjavascript関数です。

13
Trimack

Javascript parseIntメソッドを使用します( http://www.w3schools.com/jsref/jsref_parseint.asp

var number = parseInt($(this).find('.number').text(), 10);
var current = 600;
if (current > number){
     // do something
}

基数10であることをparseIntに伝える基数値10を指定することを忘れないでください。

3
Matt
var number = parseInt($(this).find('.number').text());
var current = 600;
if (current > number)
{
     // do something
}
1
Thys
number = parseInt(number);

これでうまくいくはずです。

1
Nilks

私のような小数でこれをしようとして誰かがここに来た場合:

myFloat = parseFloat(myString);

Intが必要な場合は、他の回答で十分に説明されています。

0
Tony L.