首页 前端知识 【JQuery 实现 layui 复选框 全选/反选/清除的功能】

【JQuery 实现 layui 复选框 全选/反选/清除的功能】

2024-06-06 10:06:27 前端知识 前端哥 304 772 我要收藏

关于JQuery 实现 layui 复选框 全选/反选/清除的功能

    • 思路
    • HTML的button按钮
    • js代码片段

思路

获取到渲染过的 div class=“layui-input-block” 里的 input 元素标签,改变其 checked属性

HTML的button按钮

初始的html片段是这样的

<form class="layui-form edit-form">
<div class="layui-row">
<div class="layui-col-sm12">
<div class="layui-form-item">
<label class="layui-form-label">喜欢的水果:</label>
<div class="layui-btn-group">
<button type="button" class="layui-btn layui-btn-xs" id="checkAll">全选</button>
<button type="button" class="layui-btn layui-btn-xs" id="checkOpposite">反选</button>
<button type="button" class="layui-btn layui-btn-xs" id="checkClear"><i class="layui-icon layui-icon-delete"></i>清除</button>
</div>
<div class="layui-input-block">
<input type="checkbox" name="fruits" title="苹果" lay-skin="primary">
<input type="checkbox" name="fruits" title="菠萝" lay-skin="primary">
<input type="checkbox" name="fruits" title="香蕉" lay-skin="primary">
</div>
</div>
</div>
</div>
</form>
复制

页面上会渲染成

<form class="layui-form edit-form">
<div class="layui-row">
<div class="layui-col-sm12">
<div class="layui-form-item">
<label class="layui-form-label">喜欢的水果:</label>
<div class="layui-btn-group">
<button type="button" class="layui-btn layui-btn-xs" id="checkAll">全选</button>
<button type="button" class="layui-btn layui-btn-xs" id="checkOpposite">反选</button>
<button type="button" class="layui-btn layui-btn-xs" id="checkClear"><i class="layui-icon layui-icon-delete"></i>清除</button>
</div>
<div class="layui-input-block">
<input type="checkbox" name="fruits" title="苹果" lay-skin="primary">
<div class="layui-unselect layui-form-checkbox" lay-skin="primary">
<span>苹果</span>
<i class="layui-icon layui-icon-ok">
</i>
</div>
<input type="checkbox" name="fruits" title="菠萝" lay-skin="primary">
<div class="layui-unselect layui-form-checkbox" lay-skin="primary">
<span>菠萝</span>
<i class="layui-icon layui-icon-ok"></i>
</div>
<input type="checkbox" name="fruits" title="香蕉" lay-skin="primary">
<div class="layui-unselect layui-form-checkbox" lay-skin="primary">
<span>香蕉</span>
<i class="layui-icon layui-icon-ok"></i>
</div>
</div>
</div>
</div>
</div>
</form>
复制

js代码片段

去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

<script>
layui.use(function () {
var $ = layui.$;
var form = layui.form;
// 全选
$('#checkAll').on('click', function () {
//寻找到所有的input,给cheched复制true
$(this).parent().siblings("div").children('input').prop("checked", true);
//form重新渲染checkbox元素
form.render('checkbox');
});
// 反选
$('#checkOpposite').on('click', function () {
//寻找到所有input的父级div
var checkboxs = $(this).parent().siblings("div").children('div');
//遍历父级div的
checkboxs.each((index, item) => {
//获取父级div的class
var className = checkboxs.eq(index).attr('class');
//包含layui-form-checked 的是已经被选中的,不包含的是没有被选中的
//注意: 这里的includes()是ES6的写法,不支持的话可以换成.indexOf() !== -1
if (className.includes("layui-form-checked")) {
//取消选中
$(this).parent().siblings("div").children('input').eq(index).prop("checked", false);
} else {
//选中
$(this).parent().siblings("div").children('input').eq(index).prop("checked", true);
}
})
//form重新渲染checkbox元素
form.render('checkbox');
});
// 清除
$('#checkClear').on('click', function () {
//寻找到所有的input,给cheched复制false
$(this).parent().siblings("div").children('input').prop("checked", false);
//form重新渲染checkbox元素
form.render('checkbox');
});
})
</script>
复制
转载请注明出处或者链接地址:https://www.qianduange.cn//article/11075.html
标签
layui
评论
还可以输入200
共0条数据,当前/页
发布的文章

JQuery中的load()、$

2024-05-10 08:05:15

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!