仅对选中复选框的行从行选择数据属性
Select data attribute from row only for rows with checked checkboxes
我有一个表有2列:复选框和名称。
<table id="data">
<tr class="header">
<th>
<input type="checkbox" class="download" />
</th>
<th>Name</th>
</tr>
<tr data-id="1">
<td>
<input type="checkbox" class="download" />
</td>
<td>One</td>
</tr>
<tr data-id="2">
<td>
<input type="checkbox" class="download" />
</td>
<td>Two</td>
</tr>
<tr data-id="3">
<td>
<input type="checkbox" class="download" />
</td>
<td>Something</td>
</tr>
</table>
我想从选中复选框的行中选择数据属性。现在我是这样做的:
$(document).on('click', "#select", function (e) {
var mydata=[];
$.each($('#data tbody tr:not(.header)'), function(i, row) {
if($(row).find('input[type=checkbox]').is(":checked"))
mydata.push($(row).data('id'));
});
console.log(mydata);
});
这个工作很好,但这可以做得更好/更快吗?
下面是我的工作演示:http://jsfiddle.net/Misiu/yytR2/2/
也我怎么能取消复选框在头当一个更多的复选框在正文中未被选中,并检查它时,所有将被选中?
编辑:我的最终工作代码(感谢@tymeJV):
$(document).on('change', "#data tr.header input.download", function (e) {
$('#data tbody tr:not(.header) input.download').prop('checked', $(this).is(":checked"));
});
$(document).on('change', "#data tr:not(.header) input.download", function (e) {
if ($(this).is(":checked") && $('#data tr:not(.header) input.download:not(:checked)').length == 0) {
$('#data tbody tr.header input.download').prop('checked', true);
} else {
$('#data tbody tr.header input.download').prop('checked', false);
}
});
$(document).on('click', "#select", function (e) {
var rows = $("#data tr:not(.header) td input:checked").map(function () {
return $(this).closest("tr").data("id");
}).get();
console.log(rows);
});
你可以这样做:
var rows = $("#data tr:not(.header) td input:checked").map(function() {
return $(this).closest("tr").data("id");
}).get();
它还在迭代,但只迭代选中的行。
您可以使用:
$(".download:checkbox").map(function() {
return $(this).parents('tr').data('id');
}).get()
相关文章:
- 禁用/启用基于单选/选择选项所选Javascript的文本框
- ui.grid 行无法选择行
- 根据换行符选择文本
- 基于单选/选择选项重定向
- 单击提交时存储输入单选选择
- 如何使用regex在多行中选择包含任意字符的值
- 如何在多选选择框后调用javascript方法
- 在文档加载和函数调用时,行的选择方式不同
- jQuery Mobile:单选选择菜单值干扰多选菜单的处理程序
- 多个文本字段,根据单选选择显示/隐藏(Html,JS)
- HTML 行表选择
- 在单选选择中更改前缀货币符号
- 单击单选选择时动态显示 DIV
- 检查是否进行了单选选择
- 基于下拉选择的单选选择/取消选择
- 防止单选选择与时间选择重叠
- 所选选择框中更新选项的性能
- 使jqGrid多选选择在分页、工具栏搜索或筛选后保持不变
- 如何触发对复选框的更改或单击行以选择表行
- 在表格行中选择单选按钮时,行的颜色应该更改