在选择值更改时,我希望按类找到最接近的输入并更改值。
JS
<script type="text/javascript" charset="utf-8">
$(document).ready(function(){
$('#doc_service').on('change', function (){
$.getJSON('\/services\/search-service', {id: $(this).val()}, function(data){
$(this).closest('.price').val(data);
//$('.price').val(data);
});
});
});
</script>
我的代码$(this).closest('.price').val(data);
没有改变价值,我尝试$('.price').val(data);
它的工作,但我有很多输入,并希望更改值只有一个最接近。结构html
为table
HTML
<tr>
<td>
<select id="doc_service">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
</td>
<td>
<input type="text" class="price">
</td>
</tr>
<tr>
<td>
<select id="doc_service">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
</td>
<td>
<input type="text" class="price">
</td>
</tr>
答案 0 :(得分:4)
this
未引用已更改的元素,您应该缓存该对象。另请注意,closest
方法仅选择最接近的匹配父元素。
$('#doc_service').on('change', function (){
var _this = this;
$.getJSON('\/services\/search-service', {id: this.value }, function(data) {
$(_this).closest('td').next().find('.price').val(data);
});
});
ID必须是唯一的,$('#doc_service')
只选择第一个匹配的元素,这里应该使用类。