10

#hidtrjqueryで値をインクリメントしたい。

<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()2回使用する必要がなく、必要に応じて値を処理できるため、以下のアプローチをお勧めします。

$('#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)2つのパラメーターを受け入れます。最初のパラメーターは値で、2番目のパラメーターは基数です(整数の場合は10、16進数の場合は16など)。

.val()jqueryは、設定するパラメーターとして値を受け入れ、関数も受け入れます(2つの引数indexと古い値を使用)。

于 2012-06-23T06:49:31.870 に答える
1

試す

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

角かっこが間違った場所にありました。基数もお勧めします。paraeIntのドキュメントはこちらをご覧ください。

于 2012-06-23T06:40:41.967 に答える
1

コールバックでラップし、ready角かっこを調整する必要があります

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

});

参照: jQueryドキュメント:ラップする必要がある理由の説明については、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 に答える