我的HTML代码如下。
<table id="items">
<tr class="item-row">
<td class="item-name"><div class="delete-wpr"><a class="delete" href="javascript:;" title="Remove row">-</a></div></td>
<td><input type="text" id="slslno" class="slno"/></td>
<td><input type="text" class="cost"/></td>
<td><input type="text" class="qty"/></td>
<!-- <td><span class="price"></span></td>-->
<td class="price"></td>
<a class="add" id="addrow" href="javascript:;" title="Add a row">+</a> </tr>
</table>
它有一个名为&#34的按钮;添加一行&#34;这会动态添加更多行。
然后我有了这个绑定,它在模糊slno字段期间调用更新函数。
function bind()
{
$(".slno").blur(update_unitcost);
}
函数 update_unitcost 如下。
function update_unitcost()
{
var unitprice1=$(this).val();
unitprice={"unitpricereal":unitprice1};
$.ajax({
type: "POST",
url: "findcost.php",
data: unitprice,
success: function(unitp){
$( ".cost" ).val(unitp);
}
});
}
在上面的函数中,我可以使用this
选择器获取值,但是当在以下行中设置值时,
$( ".cost" ).val(unitp);
它只会重置每个&#34; .cost
&#34;该特定数字的类。如何为各个委派的行设置值?我也尝试了以下方法,但它失败了。
var row = $(this).parents('.item-row');
row.find('.cost').val(unitp);
答案 0 :(得分:1)
在函数中设置一个变量,仅定位您要更新的特定.cost
元素,而不是所有元素。
function update_unitcost()
{
var unitprice1=$(this).val();
var costItem = $(this).parent().parent().find('td input.cost');
unitprice={"unitpricereal":unitprice1};
$.ajax({
type: "POST",
url: "findcost.php",
data: unitprice,
success: function(unitp){
costItem.val(unitp);
}
});
}