有没有办法优化以下复选框选择/取消选择代码
我有一张复选框表。当我单击带有文本“全选”的 div 时,它应该选择所有复选框,并且无论是否选中任何复选框,div 的文本都需要更改为“取消全选”,反之亦然。
我写了以下内容,效果很好,请问还有更好的方法吗?
if($(this).text() == "Select All") {
$(this).text("Unselect All");
$.each($(".classname"),function(i ,ll){
$(this).attr('checked', true);
});
}else{
$(this).text("Select All");
$.each($(".classname"),function(i ,ll){
$(this).attr('checked', false);
});
}
谢谢。
I have a table of checkboxes. When I click a div with text "Select All" it should select all chekboxes and the div's text needs to change to "Unselect all" irrespective of any check box is checked or not and vice versa.
I have written the following, it's working fine, is there any better way to do it?
if($(this).text() == "Select All") {
$(this).text("Unselect All");
$.each($(".classname"),function(i ,ll){
$(this).attr('checked', true);
});
}else{
$(this).text("Select All");
$.each($(".classname"),function(i ,ll){
$(this).attr('checked', false);
});
}
thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我假设
classname
是相关复选框的类。您可以尝试:I'm assuming
classname
is a class of the concerned checkboxes. You can try:首先,
$()
是一个函数调用,因此如果您要使用$(这个)
很多。另外,您的$.each
循环是多余的,因为 jQuery 对象将其更改应用于所有匹配的元素,因此不需要循环(即 jQuery 方法是基于设置的)。您最好删除checked
属性,而不是将其设置为false
。像这样的东西可能会更好:First of all,
$()
is a function call so you should sayvar $this = $(this)
if you're going to be using$(this)
a lot. Also, your$.each
loops are redundant as the jQuery objects apply their changes to all the matched elements anyway so looping is not needed (i.e. the jQuery methods are set based). You're probably better off removing thechecked
attribute rather than setting it tofalse
too. Something like this would probably be better: