2010-08-23 14 views
30

此代碼不起作用:jQuery的獲取文本數量

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

HTML:

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

似乎還有一些問題,從文本樣值轉換text()到數。

什麼是解決方案?

回答

102

始終使用parseInt一個基數(基地)作爲第二個參數,或者你會得到意想不到的結果:

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

然而,一個流行的變體是使用+作爲單一運營商。這將始終與基地10轉換並不會拋出一個錯誤,只是返回NaN可與功能isNaN(),如果它是一個無效的號碼進行測試:

var number = +($(this).find('.number').text()); 
+7

'+'不會爲無效返回零號碼,它會返回'NaN'。 IMO,這使得它比* parseInt()*更理想,因爲* parseInt *會嘗試在格式不正確的字符串的開頭找到一個可能導致混淆的數字(例如,1,000變爲1)。 '+ str'與寫入'Number(str)'相同。 – 2010-08-23 11:15:24

+0

Doh,你說得對。 – RoToRa 2010-08-23 12:16:35

+0

當我使用parseInt()時遇到了一些問題,那就是當我得到NaN結果時,它會搞亂計算。我通過使用一個按位運算符來解決這個問題。一個例子是: 'parseInt($(this).find('。number').text()|| 0)' – 2016-10-03 17:26:05

13

myInteger = parseInt(myString);

這是一個標準的JavaScript功能。

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

這應該做的伎倆。

3

使用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