2011-10-07 76 views
2
<span id="tcount-1">100</span> 
<span id="tcount-2">100</span> 
<span id="tcount-3">100</span> 

我想要做的是在span id = tcount-X(其中X可以是任何ID值)內抓取值,然後從中減去1。獲取元素值,然後減1?

所以我知道我可以很容易地通過做隱藏價值...

$('span#tcount-' + com_id).hide(); 

,但只要我做這樣的事情......

var countit = $('span#tcount-' + com_id).val(); 

...它打破。任何想法我做錯了什麼?

+0

爲什麼需要額外的變量? $('span [id^=「tcount」]') – Kai

+0

@Kai想必他需要從特定的跨度中減去一個,而不是從每個跨度中減去一個。 – Phrogz

回答

4
var s = $('span#tcount-' + com_id); 
s.html(s.text()*1 - 1); 

使用*1代替parseInt關於看這個問題: Table comparing various methods of string-to-number conversion http://phrogz.net/JS/string_to_number.png 和對性能的影響在這裏:
http://jsperf.com/convert-string-to-number-techniques

(你實際上並不需要*1因爲你減去,但是我已經將它包含在一個假設上,在某些時候您可能想要添加1,此時您會遇到字符串連接問題,除非您先將該字符串轉換爲數字。)

+0

什麼是好桌子 – dynamic

3

.val()設置表單域。你想要的是.text(),它將檢索範圍的內容,而不是它的「值」(在任何情況下跨度不能有值)。請注意,這將以字符串形式檢索內容,因此您需要parseInt()以及您的數學算法。