首页 > Web开发 > 详细

jquery VS Dom(小实例单选-多选-反选)

时间:2020-05-17 16:42:00      阅读:47      评论:0      收藏:0      [点我收藏+]

一直以来大家对jquery评价莫过于六个字 “吃得少,干的多” ,应用实例让大家看看这款牛到爆的插件能帮我们做什么,话不多说,直接加码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="button" value="全选" onclick="CheckAll()"/>
<input type="button" value="取消" onclick="CancleAll()"/>
<input type="button" value="反选" onclick="ReverseAll()"/>

<table border="1">
    <thead>
    <tr>
        <th>序 号</th>
        <th>用 户</th>
        <th>密 码</th>
    </tr>
    </thead>
    <tbody id="i1">
    <tr>
        <td><input type="checkbox"/></td>
        <td>1</td>
        <td>11</td>

    </tr>
    <tr>
        <td><input type="checkbox"/></td>
        <td>2</td>
        <td>22</td>

    </tr>
    <tr>
        <td><input type="checkbox"/></td>
        <td>3</td>
        <td>33</td>

    </tr>

    </tbody>
</table>
<script src="jquery-3.5.1.js"></script>
<script>


    function CheckAll() {
        //Dom版本
        // //根据id找到对应的tbody标签
        // var tb = document.getElementById(‘i1‘);
        // //找到tbody标签下的子类tr,再将其赋值给trs
        // var trs = tb.children;
        // //对trs内的每个标签进行循环,找到相应的td标签
        // for (var i = 0; i < trs.length; i++) {
        //     //循环体中拿到对应的td标签并对其内容进行检索
        //     var current_tr = trs[i];
        //     //利用两次firstElementChild取得标签input
        //     var ck = current_tr.firstElementChild.firstElementChild;
        //     ck.checked = true;
        //     //这里不建议用set或者remove去修改自定义属性,尤其是remove,执行一次后就没法再做其他修改,容易产生bug
        //     // ck.setAttribute(‘checked‘, ‘checked‘);
        // }

        //jquery版本
        $(#i1 :checkbox).prop(checked, true);
    }

    function CancleAll() {
        /*
        var tb = document.getElementById(‘i1‘);
        var trs = tb.children;
        //在trs内循环
        for (var i = 0; i < trs.length; i++) {

            var current_tr = trs[i];
            var ck = current_tr.firstElementChild.firstElementChild;
            ck.checked = false;
        }
       */
        //jquery版本
        $(#i1 :checkbox).prop(checked, false);
    }


    function ReverseAll() {
        /*
        var tb = document.getElementById(‘i1‘);
        var trs = tb.children;
        for (var i = 0; i < trs.length; i++) {
            var current_tr = trs[i];
            var ck = current_tr.firstElementChild.firstElementChild;
            if (ck.checked) {
                ck.checked = false;
                // ck.removeAttribute("checked");
            } else {
                ck.checked = true;
                // ck.setAttribute(‘checked‘, ‘checked‘);

            }
        }
         */
        $(#i1 :checkbox).each(function (i) {
            //this 当前循环的运行的标签
            if ($(this).prop(checked)) {
                $(this).prop(checked, false);
            } else {
                $(this).prop(checked, true);

            }
        })

    }


</script>
</body> </html>

重点关注中间函数部分,注释掉的使用Dom写的,没注释的是用了神器Jquery。没有对比就没有伤害,一个的一大段被简单的一行就替代了,心好累。。。。。

当然,不能排斥Dom,因为Jquery也是用Dom封装的,所以我们可以用简单的方式实现功能,但还是得回到其根本上探究其原理,而且,在某些特定环境下并不推荐使用Jquery,

例如用户流量加载的情况下,什么都没运行之前先得加载一个插件,确实有点奢侈呀!!!!

jquery VS Dom(小实例单选-多选-反选)

原文:https://www.cnblogs.com/Rocknuo/p/12905702.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!