2011-04-06 101 views
0

我有許多具有某個類的元素,並且在某些條件爲真時嘗試向它們追加某些內容。這是一個例子,但它告訴我this.value()不是一個函數。我不知道如何使用jQuery來引用單個元素。如果條件爲真,則追加到元素

<span class="numbers">1</span><br> 
<span class="numbers">2</span><br> 
<span class="numbers">3</span><br> 

$('.numbers').after(function() { 
    if (this.value() > 1) return ('<span>Bigger than one.</span>'); 
}); 

http://jsfiddle.net/SkuW3/

+0

它應該是'$(this).value()',但是''沒有值IIRC。 – kennytm 2011-04-06 16:08:07

+0

嗯,沒有'.value()'它是'.val()'。不管它在這種情況下應該是'.text()'。 – Eli 2011-04-06 16:17:03

回答

5
$('.numbers').after(function() { 
    if (parseInt($(this).text(), 10) > 1) return ('<span>Bigger than one.</span>'); 
}); 

你有幾個問題。

首先,您需要參考$(this)而不是this以在其上使用jQuery函數。

其次,使用.text()以文本形式獲取元素的值。

parseInt(value,10)在將文本與javascript中的數字進行比較時只是一個好主意。

+0

+1,用於更快速地輸入*和*將基數添加到parseInt中(因爲他會去編輯自己的答案以在...中添加基數):) – 2011-04-06 16:17:35

1

this.value()不是函數 - 有this.value屬性或jQuery.val()函數。但是,在這種情況下,你有一個<span>標記,它沒有值,所以你最好用jQuery.text()代替。使用這個,你可以將你的代碼改爲:

$('.numbers').after(function() { 
    if (parseInt($(this).text(), 10) > 1) return ('<span>Bigger than one.</span>'); 
}); 
相關問題