5

彼の ID と変数をクリックするとインクリメントするボタンを作成しようとしています。入力フィールドの値を増やす StackOverflow のコードを見つけることができましたが、そこから変更する方法がわかりません。

マークアップは次のとおりです。

<input type="text" name="qty" value="0" />
<p id="inc">Increase</p>
<p id="dec">Decrease</p>

そしてjQuery

<script>
$(document).ready(function() 
{   
    $(function()
    {
        $("#inc").click(function() 
        { 
            $(":text[name='qty']").val(Number($(":text[name='qty']").val()) + 1);
            $('#inc').addClass (Number + 1); // this one does not work
            var incrementVar = (Number + 1); // this one also does not work
        }); 

        $("#dec").click(function()
        {      
            $(":text[name='qty']").val(Number($(":text[name='qty']").val()) - 1);
        });  
    });
});
</script>

これにより、入力の val が増加しますが、$('#inc') クラスと var incrementVar をインクリメントすることはできません。

私は何をすべきか?ありがとうございました

4

3 に答える 3

5

クラス名を数字で始めることはできません。詳細については、このディスカッションを参照してください。クラスの前に , などを付けると.c1.c2次のようなことができます。

$(function() {
  $("#inc").click(function() { 
    var num = $(":text[name='qty']").val(function(i, v) { 
                   return Number(v) + 1;
              }).val();
    $(this).addClass ('c' + num);
    var incrementVar = num;
  }); 

  $("#dec").click(function() {      
    $(":text[name='qty']").val(function(i, v) { return Number(v) - 1; });
  });  
});

もう 1 つ注意: 必要はありません$(document).ready(function() {$(function() {これらは同等です。どちらかだけでラップしても問題ありません。

于 2010-03-10T17:14:28.900 に答える
3
var incrementVar = 0;
$(function() {
    $("#inc").click(function() {
        var value = parseInt($(":text[name='qty']").val()) + 1;
        $(":text[name='qty']").val(value);
        $('#inc').addClass('a' + value); // I believe class names cannot start with a number
        incrementVar = incrementVar + value;
    });
});
于 2010-03-10T17:16:45.170 に答える
0

この入力に対する追加のキーボード サポート (加算/減算する上/下矢印) については、私の Increment プラグインが役立つかもしれません: http://sean-o.com/increment

スクリプトをダウンロードしてインクルードし、1 行のコードで呼び出します。

$(":text[name='qty']").increment({ increment: 1 });

――ショーン・オー

于 2010-03-11T14:53:03.083 に答える