获取元素值然后减去1?

时间:2011-10-07 01:56:49

标签: javascript jquery

<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。

所以我知道我可以轻松隐藏价值......

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

但是一旦我做了类似......

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

......它打破了。我有什么想法吗?

2 个答案:

答案 0 :(得分: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,此时你'除非先将字符串转换为数字,否则会遇到字符串连接问题。)

答案 1 :(得分:3)

.val()用于设置表单字段。你想要的是.text(),它将检索跨度的内容,而不是它的“值”(跨度在任何情况下都不能有值)。请注意,这将以字符串形式检索内容,因此您需要使用parseInt()以及诸如此类的数学内容。