jquery在行内获得前一个div

时间:2014-01-21 15:18:58

标签: jquery selector closest

如何获取行中前一个div的值?

echo '<div class="row">
        <div class="col-md-3" style="padding-left:  0px; width: 80px; height: 4px;">
            <input type="text" value="'.$item['SAP'].'" class="form-control input-sm">    
        </div>
        <div class="col-md-4" style="padding-left:  0px; width: 330px;">
            <input type="text" value="'.$item['Name'].'" class="form-control input-sm" style="width: 300px">
        </div>
        <div class="col-md-2" style="padding-left:  0px; width: 40px; height: 4px;">
            <input type="text" class="form-control input-sm" id="'.$item['SAP'].'" value="0" style="width: 40px">    
        </div>
        <div class="col-md-1" style="width: 40px; height: 4px;">
            <button type="button" class="btn btn-default btn-xs">
                <span class="AddQuantity glyphicon glyphicon-plus"></span>
            </button>
        </div>
    </div>`enter code here`

我正在使用它:

            $('.AddQuantity').on('click', function () {
                var currentVal = $(this).closest('row').find('.form-control input-sm').val();
                alert(currentVal);
            });
        });

但它不起作用

3 个答案:

答案 0 :(得分:1)

要获取上一个,找到最近的DIV包装器,获取前一个DIV,然后找到输入:

$(this).closest('div').prev('div').find('.form-control.input-sm').val();

或所有人(加1)

$(this).closest('.row').find('.form-control.input-sm').val(function(_,v) {
    return (+v) + 1;
});

答案 1 :(得分:0)

您在课程名称input-smrow之前忘记了点。

另外,space.form-control之间不需要.input-sm,因为space用于后代元素搜索

var currentVal = $(this).closest('.row').find('.form-control.input-sm').val();

答案 2 :(得分:0)

我不认为选择器不对。

$(this).closest(".row")...[etc]应该有效

row将查找名为row的元素,而不是元素的类名