Javascript 如何在Jquery中获取父TR的特定TD文本
在我的表格中,我有类别的行,当它展开时,子类别在newJavascript 如何在Jquery中获取父TR的特定TD文本,javascript,jquery,html,Javascript,Jquery,Html,在我的表格中,我有类别的行,当它展开时,子类别在newtr中打开,在那里我有最小和最大价格的输入字段以及保存按钮。我有一个td,在主分类tr中有文本“总价”。当我填写输入字段并按save时,数据正在保存,作为响应,我得到了更新的对象的总价。总价td位于上方tr。如果我有多个子类别行,我如何到达uppertr更改td总价文本 我已将class.header指定给主类别tr <tbody> <tr class="header"> <td id="total
tr
中打开,在那里我有最小和最大价格的输入字段以及保存按钮。我有一个td
,在主分类tr
中有文本“总价”
。当我填写输入字段并按save时,数据正在保存,作为响应,我得到了更新的对象的总价。总价td
位于上方tr
。如果我有多个子类别行,我如何到达uppertr
更改td
总价文本
我已将class.header
指定给主类别tr
<tbody>
<tr class="header">
<td id="total_price">100</td>
</tr>
<tr>
<td>sub 1</td>
<td><input type="text" name="min_price"></td>
<button>save</button>
</tr>
<tr>
<td>sub 2</td>
<td><input type="text" name="min_price"></td>
<button>save</button>
</tr>
<tr>
<td>sub 3</td>
<td><input type="text" name="min_price"></td>
<button>save</button>
</tr>
</tbody>
$('#save').click(function(){
ajax(data);
var tr = $(this).prevUntil('tr.header');
tr.find("td[id='total_price']").text(data.data.total_price);
});
100
子1
拯救
次级2
拯救
子3
拯救
$(“#保存”)。单击(函数(){
ajax(数据);
var tr=$(this.prevUntil('tr.header');
tr.find(“td[id='total_price']”)text(data.data.total_price);
});
这根本不起作用,有人能给我提些建议吗?因为只有一个元素具有该id,所以只需选择它。因为我没有你的保存代码,所以我做了一些小改动,在这个例子中显示,它有问题,例如,如果框中有非数字等,但它给了你想法
$('#保存')。单击(()=>{
var合计=0;
$('input[name=“min_price”]”)。每个((i,obj)=>{
total+=parseFloat($(obj.val());
});
$(‘总价’)。文本(总计);
});代码>
100
子1
次级2
子3
保存
因为只有一个元素具有该id,所以只需选择它。因为我没有你的保存代码,所以我做了一些小改动,在这个例子中显示,它有问题,例如,如果框中有非数字等,但它给了你想法
$('#保存')。单击(()=>{
var合计=0;
$('input[name=“min_price”]”)。每个((i,obj)=>{
total+=parseFloat($(obj.val());
});
$(‘总价’)。文本(总计);
});代码>
100
子1
次级2
子3
保存
检查下面的代码片段,您应该始终使用有效的HTML,以便jQuery脚本正常工作
$(“表按钮”)。单击(函数(){
//获取与“保存”按钮最近的输入值
var val=$(this.closest('tr').find('input').val();
var$totalPrice=$(“#总价”);
//获取总价的当前现有值
var currentVal=parseInt($totalPrice.text());
//条件检查输入是否为空,但仍单击保存按钮
如果(值的类型!='undefined'&&val!=''){
val=parseInt(val);
//把价格加到总价上
$totalPrice.text(currentVal+val);
}
});代码>
100
子1
拯救
次级2
拯救
子3
拯救
检查下面的代码片段,您应该始终使用有效的HTML,以便jQuery脚本正常工作
$(“表按钮”)。单击(函数(){
//获取与“保存”按钮最近的输入值
var val=$(this.closest('tr').find('input').val();
var$totalPrice=$(“#总价”);
//获取总价的当前现有值
var currentVal=parseInt($totalPrice.text());
//条件检查输入是否为空,但仍单击保存按钮
如果(值的类型!='undefined'&&val!=''){
val=parseInt(val);
//把价格加到总价上
$totalPrice.text(currentVal+val);
}
});代码>
100
子1
拯救
次级2
拯救
子3
拯救
id的选择器应该是td#total_price
,也就是说,如果您有多行带有该td,您不能使用id,因为dom中的所有id都必须是唯一的。也许考虑使用一个类,然后您可以选择使用<代码> Tr.Debug('Td.TooTyPalm)如果它实际上是一个带有ID的头,您不必找到它,只需用<代码> $('Td'TythOutalPalk)选择它。
price只有一个td,这就是为什么我使用Id,它位于当前标题中,我需要在DOM中更新它,以便更好地理解im更新html,Id的选择器应该是td\total\u price
,也就是说,如果您有多行带有该td,不能使用id,因为dom中的所有id都必须是唯一的。也许考虑使用一个类,然后您可以选择使用<代码> Tr.Debug('Td.TooTyPalm)如果它实际上是一个带有ID的头,您不必找到它,只需用<代码> $('Td'TythOutalPalk)选择它。
price只有一个td,这就是为什么我使用Id,它位于当前标题中,我需要在DOM中更新它,以便更好地理解im更新html,按钮也在每一行中。我看到你是这样做的,但你需要将它们包装在td元素中,你不能在tr中单独有一个按钮。这个示例只是演示如何设置值。按钮位于每一行中。我看到您是这样做的,但您需要将它们包装在td元素中,而tr中不能单独有按钮。此示例仅演示如何设置值。