Javascript 使用jQuery切换(启用/禁用)HTML表中的所有复选框
我想在HTMLJavascript 使用jQuery切换(启用/禁用)HTML表中的所有复选框,javascript,jquery,html,Javascript,Jquery,Html,我想在HTML中添加一个启用所有复选框,用于切换该中的所有复选框 我不能让它工作 我的Jquery: 另见 更新: 我让它与以下代码一起工作: var elementName = 'TestName'; var $checkboxes = $('.table-list').find('input'); $('input[familyname="TestName"]').on('click', function() { $checkboxes.prop('chec
中添加一个启用所有
复选框,用于切换该
中的所有复选框
我不能让它工作
我的Jquery:
另见
更新: 我让它与以下代码一起工作:
var elementName = 'TestName';
var $checkboxes = $('.table-list').find('input');
$('input[familyname="TestName"]').on('click', function() {
$checkboxes.prop('checked', $(this).is(':checked'));
});
但是,当我想添加更多表时,会出现错误。请参阅。如果您要放入
选项卡
,那么您不能直接执行。查找()
,而是遍历到t正文
,并使用类型=复选框
选择所有输入
,如:
$(this).closest("table").find('tbody input[type=checkbox]').prop('checked', true);
同样,我们也要:
$(this).closest("table").find('tbody input[type=checkbox]').prop('checked', false);
如果您正在输入
thead
,那么您不能直接执行。查找()
,而是遍历到tbody
,并使用type=checkbox
选择所有input
,如:
$(this).closest("table").find('tbody input[type=checkbox]').prop('checked', true);
同样,我们也要:
$(this).closest("table").find('tbody input[type=checkbox]').prop('checked', false);
您必须更改代码,如下所示
var elementName = 'TestName';
$('input[familyname="' + elementName + '"]').on('click', function() {
var elems = $(this).closest('table.table').find('tr input');
elems.prop('checked', this.checked)
});
tr
在我们的上下文中是父级的,因此.find()
超过$(此)
将不起作用。因此,我们必须使用.closest()
来获取父表,并从中获取所有必需的输入复选框元素
您使用两个单选按钮设置了相同的id,为单选按钮指定唯一id并使用上述代码
您必须更改代码,如下所示
var elementName = 'TestName';
$('input[familyname="' + elementName + '"]').on('click', function() {
var elems = $(this).closest('table.table').find('tr input');
elems.prop('checked', this.checked)
});
tr
在我们的上下文中是父级的,因此.find()
超过$(此)
将不起作用。因此,我们必须使用.closest()
来获取父表,并从中获取所有必需的输入复选框元素
您使用两个单选按钮设置了相同的id,为单选按钮指定唯一id并使用上述代码
这是实现所需效果的简单但最佳的方法,适用于任意数量的复选框组:
var elementName = 'TestName';
$('input[familyname="' + elementName + '"]').on('click', function(e) {
$(this)
.closest('.table-list')
.find('input')
.prop('checked', this.checked);
});
(另请参见)这是实现所需效果的简单但最佳的方法,适用于任意数量的复选框组:
var elementName = 'TestName';
$('input[familyname="' + elementName + '"]').on('click', function(e) {
$(this)
.closest('.table-list')
.find('input')
.prop('checked', this.checked);
});
(另请参见)尝试以下方法:
$(document).on('click', '#switchall1', function() {
if ($(this).is(':checked')) {
$(this).closest('table').find('tbody tr input').prop('checked', true);
}
else {
$(this).closest('table').find('tbody tr input').prop('checked', false);
}
})) 试试这个:
$(document).on('click', '#switchall1', function() {
if ($(this).is(':checked')) {
$(this).closest('table').find('tbody tr input').prop('checked', true);
}
else {
$(this).closest('table').find('tbody tr input').prop('checked', false);
}
})) 它可以工作,但如果我想像@EdinPuzic这样同时拥有两个表:只需添加一些ID,就可以了。另外,请确保您的所有ID都是唯一的!看看这里的小提琴-->@JohnSlegers如果有100个表,你会创建100个事件处理程序吗\@JohnSlegers它可以工作,但问题是我在一个页面上会有30多个表。@EdinPuzic为什么不能使用这种方法,因为它可以工作,但是如果我想同时有两个表,就像这样@EdinPuzic:只需添加一些ID,它就可以工作了。另外,请确保您的所有ID都是唯一的!看看这里的小提琴-->@JohnSlegers如果有100个表,你会创建100个事件处理程序吗\@JohnSlegers这是可行的,但问题是我在一页上会有30多个表格。@EdinPuzic既然有效,为什么你不能使用这种方法呢?但如果我想同时有两个表格?@EdinPuzic如果你展示整个页面,最好回答这个问题html@EdinPuzic只需为“全部启用”复选框及其标签指定不同的id即可。检查这个演示@顺便说一句,试着在任何答案中按勾号。因为这将有助于未来的游客为他们找到一个解决方案。这不是一种强迫非常感谢!!:)它是有效的,但如果我想同时拥有两张桌子?@EdinPuzic如果你展示整个桌子,回答这个问题会更好html@EdinPuzic只需为“全部启用”复选框及其标签指定不同的id即可。检查这个演示@顺便说一句,试着在任何答案中按勾号。因为这将有助于未来的游客为他们找到一个解决方案。这不是一种强迫非常感谢!!:)但如果我想在同一时间有两张桌子,我不明白,你说在同一时间有两张桌子是什么意思@像这样,我有两个不同的表和全部启用按钮,我需要分开全部启用按钮。现在,当我点击1号表时,它会启用2号表,但如果我想同时拥有2个表,我不明白,你说的同时拥有2个表是什么意思@像这样,我有两个不同的表和全部启用按钮,我需要分开全部启用按钮。现在,当我单击表1时,它也会启用表2