10

我想#hidtr在 jquery 中增加值。

<script type="text/javascript">  
    $('#hidtr').val(parseInt($('#hidtr').val()+1));     
    alert($('#hidtr').val());  
</script>
4

5 回答 5

11

尝试这个

var val = $('#hidtr').val();
$('#hidtr').val((val*1)+1); 
于 2012-06-23T07:20:16.887 回答
2

我将首选以下方法,因为不需要使用$('#hidtr').val()两次,您也可以根据需要处理该值。

$('#hidtr').val(function(i, oldVal) {
  return parseInt(oldVal || 0, 10) + 1; // oldVal || 0 if initial is empty
});  
alert($('#hidtr').val()); 

演示


如果您不想使用上述方法,请遵循:(@charlietfl 提到)

var hidtr = $('#hidtr'), // store the reference, not use multiple time
    val = parseInt( hidtr.val(), 10 ) || 0, // peek the value
    inc = val + 1;  // increment value

hidtr.val(inc); // set value

笔记

parseInt(value, radix)接受两个参数,第一个是值,第二个是基数(整数为 10,十六进制为 16,依此类推)。

.val()jquery 接受一个值作为要设置的参数以及一个函数(带有两个参数索引和旧值)。

于 2012-06-23T06:49:31.870 回答
1

尝试

$('#hidtr').val(parseInt($('#hidtr').val(),10)+1);

你把括号放在了错误的地方,还推荐使用 Radix,请参阅 paraeInt 的文档here

于 2012-06-23T06:40:41.967 回答
1

您需要将其包装在ready回调中并对括号进行调整

$(function(){
   $('#hidtr').val(parseInt($('#hidtr').val(),10) || 0 +1);
    alert($('#hidtr').val());

});

请参阅: jQuery Docs:jQuery 的工作原理以解释为什么需要包装它

在处理程序或函数中多次使用选择器时,最好将其缓存

$(function(){
    var $hidtr= $('#hidtr');
     var val=$hidtr.val();
   $hidtr.val(parseInt( val,10)  || 0 +1);
    alert( $hidtr.val());

});
于 2012-06-23T06:44:53.693 回答
0

或另一个工作演示 http://jsfiddle.net/AuJv2/5/ 在初始空输入的情况下:http: //jsfiddle.net/AuJv2/8/

请注意parseInt($('#hidtr').val()+1)应该是parseInt($('#hidtr').val())+1

希望这可以帮助,

代码

var num = parseInt($('#hidtr').val()) || 0;
$('#hidtr').val(parseInt(num)+1);
alert($('#hidtr').val());

$('#hidtr').val(parseInt($('#hidtr').val())+1);
alert($('#hidtr').val());

​
于 2012-06-23T06:42:36.117 回答