Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Jquery中获取父TR的特定TD文本_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何在Jquery中获取父TR的特定TD文本

Javascript 如何在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

在我的表格中,我有类别的行,当它展开时,子类别在new
tr
中打开,在那里我有最小和最大价格的输入字段以及保存按钮。我有一个
td
,在主分类
tr
中有文本
“总价”
。当我填写输入字段并按save时,数据正在保存,作为响应,我得到了更新的对象的总价。总价
td
位于上方
tr
。如果我有多个子类别行,我如何到达upper
tr
更改
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中不能单独有按钮。此示例仅演示如何设置值。