1

私はこのコードを使用しています

<a id="minus" href="#">-</a>
   <span id="VALUE">0</span>
<a id="plus" href="#">+</a>

Javascript:

$(function(){

    var valueElement = $('#VALUE');
    function incrementValue(e){
        valueElement.text(Math.max(parseInt(valueElement.text()) + e.data.increment, 0));
        return false;
    }

    $('#plus').bind('click', {increment: 1}, incrementValue);

    $('#minus').bind('click', {increment: -1}, incrementValue);

});

「VALUE」という名前のフィールドのプラス/マイナスインクリメンタを持ちます。今、私はこのような150フィールドを含むこれを使用するフォームを持っています...ユーザーがインクリメント/デクリメントしているフィールドの名前を何らかの方法で関数に渡すこのコードを一般化する方法はありますか? そうでなければ、このコードを 150 回複製する必要があります...

4

4 に答える 4

1

みたいな容器に入れて

<span class="stepper">
   <dec>-</dec>
   <span>0</span>
   <inc>+</inc>
</span>

このように、あまり手間をかけずにディスプレイを比較的選択できます

$(this).parent().children("span");

それぞれのclickハンドラで。

于 2012-12-17T11:54:36.967 に答える
1

これが役立つ場合は、これを試してください:

classes .plus, .minus代わりに使用したものを少し変更しましたids #plus, #minus

 $('.plus').click(function() {
    var sp = parseFloat($(this).prev('span').text());
    $(this).prev('span').text(sp + 1);
 });

 $('.minus').click(function() {
    var sp = parseFloat($(this).next('span').text());
    $(this).next('span').text(sp - 1);
 });

フィドルでこれをチェックしてください:http://jsfiddle.net/L2UPw/

于 2012-12-17T12:02:07.730 に答える
0

セレクターでIDの代わりにクラスを使用する

$('.minus').bind('click', {increment: -1}, incrementValue);

< a id="minus1" class="minus" href="#">-< /a>
...
< a id="minus150" class="minus" href="#">-< /a>
于 2012-12-17T11:39:10.100 に答える