gpt4 book ai didi

javascript - 禁用具有按钮的特定 tr 的输入复选框

转载 作者:行者123 更新时间:2023-11-30 21:13:49 24 4
gpt4 key购买 nike

我想禁用 parent 为红色且数据标识为“ parent ”的输入复选框。实际上有很多行,但其中缺少 BIC 代码,我已经检查过并显示为红色。当我们点击父行时,子行默认展开,不显示。我已经尝试了很多时间但没有成功,这是我想要的屏幕截图:

image1

图片2

enter image description here

这是我试过的代码:

$('#table1 tr').each(function(){        
var attr = $('td').find(".openmodelsepa");
$(attr).parents('tr').css('background-color','#f2dede');
$(attr).parents('tr').next('tr[data-id="child"]').each(function(){
$(this).find('td').each (function() {
$(this).find('input[name="invoicearr[]"]').prop('disabled', true);
});
});
});

像这样的 HTML:

<table id="table1" class="tablesorter">
<tbody id="tbody">
<tr data-id="parent" class="parent_172" onclick="show_lines(172)">
<td style="text-align:right;"><input type="checkbox" class="contactsepa" data-contact="172" id="check0" data-mainprice="786.5" name="invoicearr[]" style="display:none" value="786.5"></td>
<td>Aegis Wervingg</td>
<td></td>
<td>NL0000000000000000</td>
<td>MYAC007</td>
<td>50004</td>
<td></td>
<td class="parent_total">786.5 </td>
<td>Open Invoices </td>
<td></td>
</tr>
<tr data-id="child" class="child_172" style="display:none">
<td style="text-align:right;"><input type="checkbox" class="contactsepa" data-contact="172" id="check1" data-mainprice="786.5" name="invoicearr[]" style="display:block" value="786.5">172</td>
<td></td>
<td>586</td>
<td></td>
<td></td>
<td></td>
<td>30-06-2017 11:36:38</td>
<td class="child_total">786.5 </td>
<td>Combine </td>
<td></td>
</tr>
<tr data-id="parent" class="parent_1494" onclick="show_lines(1494)" style="background-color: rgb(242, 222, 222);">
<td style="text-align:right;"><input type="checkbox" class="contactsepa" data-contact="1494" id="check0" data-mainprice="47.88" name="invoicearr[]" style="display:none" value="47.88"></td>
<td>Timmerman Stoffen</td>
<td></td>
<td>NL0000000000000000</td>
<td></td>
<td>090453-9</td>
<td></td>
<td class="parent_total">47.88 </td>
<td>Open Invoices </td>
<td><button type="button" class="openmodelsepa" data-target="1494">Edit</button></td>
</tr>
<tr data-id="child" class="child_1494" style="background-color: rgb(221, 221, 221); opacity: 0.5; display: none;">
<td style="text-align:right;"><input type="checkbox" class="contactsepa" data-contact="1494" id="check1" data-mainprice="47.88" name="invoicearr[]" style="display:block" value="47.88" disabled="disabled">1494</td>
<td></td>
<td>260</td>
<td></td>
<td></td>
<td></td>
<td>16-06-2017 12:00:00</td>
<td class="child_total">47.88 </td>
<td>Normal </td>
<td></td>
</tr><tr data-id="parent" class="parent_2314" onclick="show_lines(2314)" style="background-color: rgb(242, 222, 222);">

<td style="text-align:right;"><input type="checkbox" class="contactsepa" data-contact="2314" id="check0" data-mainprice="4362.9" name="invoicearr[]" style="display:none" value="4362.9"></td>
<td>Renmaart B.V.</td>
<td></td>
<td>NL0000000000000000</td>
<td></td>
<td>100332-1</td>
<td></td>
<td class="parent_total">4362.9 </td>
<td>Open Invoices </td>
<td><button type="button" class="openmodelsepa" data-target="2314">Edit</button></td>
</tr>
</tbody>
</table>

最佳答案

next 方法只为每个匹配元素选择一个元素:紧跟在它后面的那个。

改为使用 nextUntil 并将条件从子级反转为父级:

$(attr).parents('tr').nextUntil('tr[data-id="parent"]') // ...etc

您实际上可以避免 foreach 循环,以及像这样的链式选择器:

$('#table1 tr:has(.openmodelsepa)')
.css('background-color','#f2dede')
.nextUntil('tr[data-id="parent"]')
.find('input[name="invoicearr[]"]')
.prop('disabled', true);

请注意,在示例 HTML 中,第一行没有类 openmodelsepa 的后代,而且所有子 tr 元素都隐藏在 display 样式中: 无

关于javascript - 禁用具有按钮的特定 tr 的输入复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45877780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com