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

 更新时间:2016年11月24日 09:58:17   作者:可爱小猪  
在做列表时经常会遇到全选,反选进行批量处理问题。通过本文给大家介绍JQuery实现列表中复选框全选反选功能封装,对jq复选框全选反选功能感兴趣的朋友一起看看吧

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

  我当时就是简单的实现了,然后想封装到公共的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实现列表中复选框全选反选功能封装(推荐),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • 做好七件事帮你提升jQuery的性能

    做好七件事帮你提升jQuery的性能

    这篇文章主要介绍了做好七件事帮你提升jQuery的性能的相关资料,需要的朋友可以参考下
    2014-02-02
  • 用Jquery重写windows.alert方法实现思路

    用Jquery重写windows.alert方法实现思路

    本文将介绍下用Jquery重写windows.alert方法,已经在 IE8 , firefox3.0.11下面测试通过,喜欢的朋友可以放心使用
    2013-04-04
  • jQuery实现带滑动条的菜单效果代码

    jQuery实现带滑动条的菜单效果代码

    这篇文章主要介绍了jQuery实现带滑动条的菜单效果代码,涉及jquery遍历页面元素及动态变换效果实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • jQuery打字效果实现方法(附demo源码下载)

    jQuery打字效果实现方法(附demo源码下载)

    这篇文章主要介绍了jQuery打字效果实现方法,详细分析了jQuery实现打字效果所涉及的jticker_split.js插件机具体调用技巧,并附带完整的demo源码供读者下载参考,需要的朋友可以参考下
    2015-12-12
  • jQuery contains过滤器实现精确匹配使用方法

    jQuery contains过滤器实现精确匹配使用方法

    contains 选择器选取包含指定字符串的元素。该字符串可以是直接包含在元素中的文本,或者被包含于子元素中。经常与其他元素/选择器一起使用,来选择指定的组中包含指定文本的元素
    2013-04-04
  • ztree实现左边动态生成树右边为内容详情功能

    ztree实现左边动态生成树右边为内容详情功能

    zTree 是利用 JQuery 的核心代码,实现一套能完成大部分常用功能的 Tree 插件。接下来通过本文给大家分享ztree实现左边动态生成树右边为内容详情功能,需要的朋友参考下吧
    2017-11-11
  • asp.net+jquery.form实现图片异步上传的方法(附jquery.form.js下载)

    asp.net+jquery.form实现图片异步上传的方法(附jquery.form.js下载)

    这篇文章主要介绍了asp.net+jquery.form实现图片异步上传的方法,结合实例形式分析了jquery.form.js前台异步提交图片与asp.net后台处理的相关技巧,需要的朋友可以参考下
    2016-05-05
  • 基于jQuery的history历史记录插件

    基于jQuery的history历史记录插件

    history历史记录插件可以帮助您回到您的JavaScript支持应用程序/前进按钮和书签。你可以存储到应用程序状态的网址散列和恢复它的状态。
    2010-12-12
  • jQuery实现动态操作table行

    jQuery实现动态操作table行

    这篇文章主要为大家详细介绍了jQuery实现动态操作table行,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • 设置jquery UI 控件的大小方法

    设置jquery UI 控件的大小方法

    下面小编就为大家带来一篇设置jquery UI 控件的大小方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12

最新评论