jQuery为表中最近的元素添加值

时间:2014-04-29 08:13:45

标签: jquery html

我有一个问题。我需要在2个相同的类中添加不同的值。 我需要去做: 1.当我从测试1,2,3和4更改下拉列表时,文本字段中的值必须是来自文本输入的10,15或...值(在实际系统中它们是隐藏的),其中id = price-1,2, 3和4。 2.当我从测试5,6,7和8更改下拉列表时,第一个下拉列表中的值不得更改。

HTML:

<input type="text" value="10" id="price-1" size="2" />
<input type="text" value="15" id="price-2" size="2"/>
<input type="text" value="20" id="price-3" size="2"/>
<input type="text" value="25" id="price-4" size="2"/>
<table>
<tr>
    <td>
        <select class="drop">
            <option value="1">Test 1</option>
            <option value="2">Test 2</option>
            <option value="3">Test 3</option>
            <option value="4">Test 4</option>
        </select>
    </td>
    <td><input type="text" value="" class="cost" /></td>
</tr>
<tr>
    <td>
        <select class="drop">
            <option value="1">Test 5</option>
            <option value="2">Test 6</option>
            <option value="3">Test 7</option>
            <option value="4">Test 8</option>
        </select>
    </td>
    <td><input type="text" value="" class="cost" /></td>
</tr>
</table>

JS:

$('body').delegate(".drop", "change", function() {
    var end = this.value;
    var price = $('#price-'+ end).val();    
    $('.cost').val(price);

});

这是jsFiddler:JSFIDDLER

编辑:找到解决方案!

新JS:

$('body').delegate(".drop", "change", function() {
    var end = this.value;
    var price = $('#price-'+ end).val();    
    var new_cost = $(this).parents('tr').find('.cost');
    $(new_cost).val(price);

});

1 个答案:

答案 0 :(得分:0)

解决方案:

JS:

$('body').delegate(".drop", "change", function() {
   var end = this.value;
   var price = $('#price-'+ end).val();    
   var new_cost = $(this).parents('tr').find('.cost');
   $(new_cost).val(price);
});