Jquery 有没有办法加上一句;选择全部";dataTable中的复选框,用于检查下表行中的所有复选框
我的页面上有多个动态表,每一行都有一个复选框,我正在分配一个从sql查询中获取的值。在下面附加一个屏幕截图:- 一次可以有5-10张以上的桌子 这是我桌子结构的把手代码Jquery 有没有办法加上一句;选择全部";dataTable中的复选框,用于检查下表行中的所有复选框,jquery,node.js,datatable,datatables,Jquery,Node.js,Datatable,Datatables,我的页面上有多个动态表,每一行都有一个复选框,我正在分配一个从sql查询中获取的值。在下面附加一个屏幕截图:- 一次可以有5-10张以上的桌子 这是我桌子结构的把手代码 <div id="collapse_{{major_location_id}}" class="collapse show" aria-labelledby="heading data-parent="#accordion"> <div class="
<div id="collapse_{{major_location_id}}" class="collapse show" aria-labelledby="heading data-parent="#accordion">
<div class="card-body">
<div class="common_table table-responsive search-input tablecolumnLimit">
<table class="table locations-table">
<thead>
<tr>
<th>
<label class="custom_checkbox">
<input class="chk_all" type="checkbox">
<span class="checkmark"></span>
</label>Location Name
</th>
<th>Address</th>
<th>City</th>
<th>Zipcode</th>
</tr>
</thead>
<tbody>
{{#each locations}}
<tr>
<td>
<label class="custom_checkbox">
{{#if (eq type 'participant')}}
<input type="checkbox" class="chk_cls"
name="participant_locations[]" value="{{location_id}}">
{{else}}
<input type="checkbox" class="chk_cls"
name="non_participant_locations[]" value="{{location_id}}">
{{/if}}
<span class="checkmark"></span>
</label>{{location_name}}</td>
<td>{{this.address1}}</td>
<td>{{this.donor_city}}</td>
<td>{{this.zip}}</td>
</tr>
{{/each}}
</tbody>
</table>
</div>
</div>
</div>
)})
以下代码仅适用于单个表:
$("#chk_all").on('click', function () {
var cells = table.api().cells().nodes();
$(cells).find('.chk_cls').prop('checked', this.checked);
});
您可以使用已经使用的选择器,但只需提供不同的选择器即可-例如:
var cells = $('.dataTable').dataTable().api().cells().nodes();
这将查找使用类
dataTable
的所有表。从这里开始,您可以使用现有逻辑的其余部分。以下修改Andrew给出的建议为我工作。
我使用$(this)查找与我的Check All复选框最近的表,然后使用变量获取所有单元格
$(".chk_all").on('click', function () {
var myTable = $(this).closest(table);
var cells = $(myTable).dataTable().api().cells().nodes();
$(cells).find('.chk_cls').prop('checked', this.checked);
});
$(".chk_all").on('click', function () {
var myTable = $(this).closest(table);
var cells = $(myTable).dataTable().api().cells().nodes();
$(cells).find('.chk_cls').prop('checked', this.checked);
});