onclick更改next或previus div的值

时间:2015-06-02 14:37:22

标签: jquery input

我正在编码按钮来更改它们之间输入的值。

我的HTML是:

<td class="uneven">
    <div class="buttonbundle up">+</div>
    <input onkeyup="bundle.changeOptionQty(this, event)" 
           onblur="bundle.changeOptionQty(this, event)" 
           class="input-text qty" 
           id="bundle-option-1-1-qty-input" 
           type="text" 
           name="bundle_option_qty[1][1]" 
           value="1" />
    <div class="buttonbundle down">-</div>
</td>

如果使用onclick on buttonbundle up它必须得到下一个输入的值并再次输入+1,如果它减去,它必须为-1。

我认为一定是这样的:

jQuery(document).ready(function() {
    jQuery('.buttonbundle.up').on('click',function){
        $val = jQuery(this).next('input').prop("value");
        jQuery(this).next('input').prop("value",$val);
    }
}

或类似的东西。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

这应该适合你:

$(function() {
    $('.buttonbundle.up').on('click',function(){
        var input = $(this).next('input');
        var x = parseInt(input.val());
        input.val( x + 1 );
    });
    $('.buttonbundle.down').on('click',function(){
        var input = $(this).prev('input');
        var x = parseInt(input.val());
        input.val( x - 1 );
    });
});

DEMO

修改

或包含在一个功能中:

$(function() {
    $('.buttonbundle').on('click',function(){
        var input = $(this).parent().find('input');
        var x = parseInt(input.val());
        var y = $(this).hasClass('up') ? x+1 : x-1;
        input.val( y );
    });
});
// or
jQuery(document).ready(function() {
    jQuery('.buttonbundle').on('click',function(){
        var input = jQuery(this).parent().find('input');
        var x = parseInt(input.val());
        var y = jQuery(this).hasClass('up') ? x+1 : x-1;
        input.val( y );
    });
});

DEMO 2

答案 1 :(得分:0)

您需要两个不同的处理程序

了解

jQuery('.buttonbundle.up').on('click', function() {
   var $input = $(this).next('input');
   var $val = parseInt($input.val(), 10);
   $input.val($val+1);
});

下来

jQuery('.buttonbundle.down').on('click', function() {
   var $input = $(this).prev('input');
   var $val = parseInt($input.val(), 10);
   $input.val($val-1);
});