Jquery tablesorter-选择父行时包括所有子行
这似乎是一个足够简单的函数,但出于某种原因,我正在努力使它工作。我有一个带有jquery tablesorter插件的HTML表。每行都有一个复选框作为第一列。默认情况下,所有子行都是隐藏的。当我选中父行上的复选框时,我希望它也将该父行下的子行上的复选框标记为选中。这是我的HTML表格:Jquery tablesorter-选择父行时包括所有子行,jquery,each,tablesorter,Jquery,Each,Tablesorter,这似乎是一个足够简单的函数,但出于某种原因,我正在努力使它工作。我有一个带有jquery tablesorter插件的HTML表。每行都有一个复选框作为第一列。默认情况下,所有子行都是隐藏的。当我选中父行上的复选框时,我希望它也将该父行下的子行上的复选框标记为选中。这是我的HTML表格: <table> <thead> <tr> <th>Select</th> <th>Column2<
<table>
<thead>
<tr>
<th>Select</th>
<th>Column2</th>
</tr>
</thead>
<tbody>
<tr class="tablesorter-hasChildRow">
<td><input type="checkbox" class="rowSelector"></td>
<td>Column 2 Data</td>
<tr>
<tr class="tablesorter-childRow">
<td><input type="checkbox" class="rowSelector"></td>
<td>Column 2 Data</td>
<tr>
<tr class="tablesorter-childRow">
<td><input type="checkbox" class="rowSelector"></td>
<td>Column 2 Data</td>
<tr>
<tr class="tablesorter-hasChildRow">
<td><input type="checkbox" class="rowSelector"></td>
<td>Column 2 Data</td>
<tr>
<tr class="tablesorter-childRow">
<td><input type="checkbox" class="rowSelector"></td>
<td>Column 2 Data</td>
<tr>
<tr class="tablesorter-childRow">
<td><input type="checkbox" class="rowSelector"></td>
<td>Column 2 Data</td>
<tr>
</tbody>
</table>
谁能告诉我哪里出了问题 下面是工作代码:
$('.rowSelector').change(function() {
$(this).closest('tr.tablesorter-hasChildRow').nextUntil('tr.tablesorter-hasChildRow').find('input.rowSelector').prop('checked', $(this).prop('checked'));
});
嗯,有点奏效。理想情况下,当手动选择所有较低级别的刻度时,您仍然希望切换较高级别的刻度。下面是工作代码:
$('.rowSelector').change(function() {
$(this).closest('tr.tablesorter-hasChildRow').nextUntil('tr.tablesorter-hasChildRow').find('input.rowSelector').prop('checked', $(this).prop('checked'));
});
嗯,有点奏效。理想情况下,当手动选择所有较低级别的标记时,您仍然希望切换较高级别的标记。HTML存在一些问题。。。请确保在关闭行时使用
。此HTML将创建两行,第一行为空
<tr>
<tr class="tablesorter-hasChildRow">
HTML有一些问题。。。请确保在关闭行时使用
。此HTML将创建两行,第一行为空
<tr>
<tr class="tablesorter-hasChildRow">
例如,您的关闭
tr
标记实际上没有关闭。他们正在打开标签。哎呀!我在重新打字时忘记了他们。感谢您指出:)首先,您的关闭tr
标记实际上并没有关闭。他们正在打开标签。哎呀!我在重新打字时忘记了他们。谢谢你指出:)这正是我想要做的!非常感谢你。我想我让事情变得比需要的更复杂了。我甚至没有考虑过另一种情况,即当所有子行都被选中时,应该检查父行。谢谢你不仅帮助我让它工作,而且帮助它变得更好!!!这正是我想要做的!非常感谢你。我想我让事情变得比需要的更复杂了。我甚至没有考虑过另一种情况,即当所有子行都被选中时,应该检查父行。谢谢你不仅帮助我让它工作,而且帮助它变得更好!!!莫蒂,救命啊!!哇,这太完美了。我觉得很难改变我接受的答案,因为@rtytgat确实回答了我提出的问题,但这一次肯定更进一步了。我还喜欢添加“父对象不确定”复选框。这是一个非常用户友好的解决方案。非常感谢你!!这可能应该是一个单独的问题,但既然你已经掌握了这一点,我觉得它值得一问。插件是否有一个计算所选父行和子行的函数?我有一个只计算所有行的程序,但当我实现这个程序时,它就搞乱了。我似乎也找不到它变得奇怪的原因。你能给我指一下这方面的文档吗?里面没有任何内置的东西。如果需要,您可以修改上面的代码以添加计数。。。使用$group.length
获取总行数(父行+子行),或使用$rows.length
获取子行总数。注意!!哇,这太完美了。我觉得很难改变我接受的答案,因为@rtytgat确实回答了我提出的问题,但这一次肯定更进一步了。我还喜欢添加“父对象不确定”复选框。这是一个非常用户友好的解决方案。非常感谢你!!这可能应该是一个单独的问题,但既然你已经掌握了这一点,我觉得它值得一问。插件是否有一个计算所选父行和子行的函数?我有一个只计算所有行的程序,但当我实现这个程序时,它就搞乱了。我似乎也找不到它变得奇怪的原因。你能给我指一下这方面的文档吗?里面没有任何内置的东西。如果需要,您可以修改上面的代码以添加计数。。。使用$group.length
获取总行数(父行+子行),或使用$rows.length
获取子行总数。