热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jquery全选反选,jquery实现全选和取消全选

jquerycheckbox全选反选代码只能执行一遍,第二次就失败removeAttr参数只需要一个,removeAttr(checked)不过建议替换成$(.chooseall)

jquery checkbox 全选反选代码只能执行一遍,第二次就失败

removeAttr参数只需要一个,removeAttr("checked")

不过建议替换成

$(".chooseall").click(function(){

    if($(".chooseall").prop("checked") == true){

        $("input[name='checkbox1']").prop("checked", false);

        console.log(1);

    }else{

        $("input[name='checkbox1']").prop("checked", false);

        console.log(2);

    }

});

或者更简洁的,

$(".chooseall").click(function(){

    var isChecked = $(this).prop("checked");

    $("input[name='checkbox1']").prop("checked", isChecked);

});

jquery 全选反选

// 改用prop

$("类名").prop("checked","checked");//全选

$("类名").removeAttr("checked");//取消全选

我的jquery复选框 全选/全不选/反选 功能为什么不正常啊

    $('#checkAll').click(function(){

        $(':checkbox').each(function(i, el){//最好这样。setAttribute有时候会有问题。

el.checked = true;

});

    });

    $('#checkNo').click(function(){

        $(':checkbox').each(function(i, el){

el.checked = false;

});

    });

    $('#checkReverse').click(function(){

        $(':checkbox').each(function(){

           var flag=this.checked;

           $(this).attr('checked',function(index,value){

               return !value;

           });

       });

    });

如果你直接

$(':checkbox').attr('checked',true);

你会发现,其实你复选框上已经显示checked="checked"了。按道理是应该处于选中状态的。

但实际上。你再调用

$(':checkbox')[0].checked;//会返回false

很奇怪吧。虽然从attr属性上看,确实是checked的。但是dom元素的直接属性上,却返回false。

jquery的attr调用的是DOM的setAttribute方法。也就是说,

$el.setAttribute('checked', true);和$el.checked = true;是有可能在浏览器上处理不一致的。

最常规的方式总之最正确的。如果遇到兼容性的问题。就尽量采用DHTML中最通用的方式。

JQuery实现列表中复选框全选反选功能封装(推荐)

我们在做列表的时候经常会遇到全选,反选进行批量处理问题,例如:

我当时就是简单的实现了,然后想封装到公共的js中,封装的太烂,不好意思贴出来了(就是把实现代码之间放到公共js中,然后每个页面都用固定的id,class,现在想想我都不好意思叫他封装了),然后想到之前老大有写过这个功能去看下他怎么写的,真是没有对比就没有伤害啊,这才叫封装;

$(':checkbox[data-check-target]').click(function

()

{

var

target

=

$(this).attr('data-check-target');

if

($(this).prop('checked'))

{

$(target).prop('checked',

true);

}

else

{

$(target).prop('checked',

false);

}

});

首先这儿的高封装性就体现出来了,只有一个自定义的data-check-target属性用于js和html分离后的连接桥梁(而我当时用两个:一个全选复选框,一个子复选框,有关的点都用上了,这样就没起到封装的效果,js和html耦合性太大)(我看到上面的js就在想怎么通过一个连接点把三个相关联的东西联系起来的呢);

接下来我们继续看具体使用的地方:

我发现全选复选框用于和js链接的桥梁的自定义属性data-check-target有点特别:

input

type="checkbox"

data-check-target=".id-checkbox"

/

它的值为“.id-checkbox”,看起来就感觉好奇怪,继续往下看子复选框实现:

input

type="checkbox"

name="ids[]"

value="@item.Id"

class="id-checkbox"

/

到这儿才豁然开朗原来子复选框的class名称就存放在自定义属性data-check-target中;

var

target

=

$(this).attr('data-check-target');

然后再通过自定义属性data-check-target拿到子复选框的class,从而达到高封装性;

我总结的就是js和html通过了自定义属性data-check-target通信,子复选框依赖全选复选框自定义属性data-check-target的值;

这个例子看下来代码不难,也没有什么地方很难理解的,就是通过一个自定义属性巧妙的完成了低耦合的封装,这也是正是这段代码的难点和精髓;

我真心抑制不住内心的崇拜,这几行代码太漂亮了。

PS:上面js为什么用prop而不用attr,因为:如果当前input中初始化未定义checked属性,则该元素没有指定的checked属性,所以.attr()会返回undefined;

对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。

对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。

以上所述是小编给大家介绍的JQuery实现列表中复选框全选反选功能封装(推荐),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!


推荐阅读
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 本文介绍了2015年九月八日的js学习总结及相关知识点,包括参考书《javaScript Dom编程的艺术》、js简史、Dom、DHTML、解释型程序设计和编译型程序设计等内容。同时还提到了最佳实践是将标签放到HTML文档的最后,并且对语句和注释的使用进行了说明。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • React基础篇一 - JSX语法扩展与使用
    本文介绍了React基础篇一中的JSX语法扩展与使用。JSX是一种JavaScript的语法扩展,用于描述React中的用户界面。文章详细介绍了在JSX中使用表达式的方法,并给出了一个示例代码。最后,提到了JSX在编译后会被转化为普通的JavaScript对象。 ... [详细]
  • mui框架offcanvas侧滑超出部分隐藏无法滚动如何解决
    web前端|js教程off-canvas,部分,超出web前端-js教程mui框架中off-canvas侧滑的一个缺点就是无法出现滚动条,因为它主要用途是设置类似于qq界面的那种格 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • ①页面初始化----------收到客户端的请求,产生相应页面的Page对象,通过Page_Init事件进行page对象及其控件的初始化.②加载视图状态-------ViewSta ... [详细]
  • 前言:关于跨域CORS1.没有跨域时,ajax默认是带cookie的2.跨域时,两种解决方案:1)服务器端在filter中配置详情:http:blog.csdn.netwzl002 ... [详细]
  • ASP.NET MVC验证标注的扩展checkbox必选
    我们知道ASP.NETmvc提供一些表单的验证标注,比如必填属性RequiredAttribute但是这个属性不适合选择框的必选但是很多时候,我们却是需要一些必选的单选框比如网站注 ... [详细]
  • 本篇文章为大家展示了input语句的作用有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。HTML标签 ... [详细]
  • 前端判断登陆页面输入是否符合要求 ... [详细]
  • WP User Frontend pro使用教程
    关于WPUserFrontendpro的自定义字段用法,WPUserFrontendpro的基本常用的字段基本已经和wp的字段匹配,标题就是标题,内容就是内容,特色图片也一起绑 ... [详细]
author-avatar
吴碧菱乐其怡伶
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有