zoukankan      html  css  js  c++  java
  • jQuery4操作表单+属性+样式

    一、动态添加表格

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>动态生成表格</title>
    </head>
    <body>
        <button>生成表格</button>
        <div>
            <table>
                <thead>
                    <tr>
                        <th>名字</th>
                        <th>描述</th>
                    </tr>
                </thead>
                <tbody></tbody>
            </table>
        </div>
        <!--引入jQuery-->
        <script src="jQuery1-12-4.js"></script>
        <script>
           $(function(){
               //模拟后台数据
                var datas = [{name:"西瓜",desc:"甜润美味,清凉可口"},
                            {name:"黄瓜",desc:"清润香甜,齿间留香"}];
               $("button").click(function () {
                   //方式1:
                //    for (var i = 0; i < datas.length; i++) {
                //         $("tbody").append($("<tr><td>"+datas[i].name+"</td><td>"+datas[i].desc+"</td></tr>"));
                       
                //    }
                //方式2:由于方式1是每次都会生成一个jQuery对象,添加到对应的地方,对内存影响大,所以出现了需要拼接完,再去添加的额情况
                // var str = "";
                // for (var i = 0; i < datas.length; i++) {
                //    str += "<tr><td>"+datas[i].name+"</td><td>"+datas[i].desc+"</td></tr>";
                // }
                // $("tbody").append($(str));
                //方式3:使用数组进行拼接
                var arr = [];
                for (var i = 0; i < datas.length; i++) {
                    arr.push("<tr><td>"+datas[i].name+"</td><td>"+datas[i].desc+"</td></tr>");
                }
                $("tbody").html(arr);
                
                  
                   
               });
           });
        </script>
    </body>
    </html>

    二、删除和复制元素

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>删除和复制元素</title>
        <style>
            div{
                width: 200px;
                height: 500px;
                background-color: pink;
    
            }
        </style>
    </head>
    <body>
        <p>我是原始的p元素</p>
        <div></div>
        <section>
            <h1>h1</h1>
        </section>
        <script src="jQuery1-12-4.js"></script>
        <script>
        //把p元素复制到div中
        $("div").append($("p").clone());//默认不带有事件的复制,而true是带有事件的复制
        //把section删除
        // $("section").remove();//自杀式删除,断子绝孙型
        // $("section").html("");//清空内部
        $("section").empty();//清空内部
    
        
    
        </script>
    </body>
    </html>

    三、操作表单

    $("this").val();这样获取的是文本框、密码框、单选框、复选框、按钮、文本域的值

    可以获取,同样可以设置$("this").val("123");

    注意:$(this).text();也是同样可以设置可以获取,但设置和获取的是两个标签中间的文本值

    四、操作属性

    1、添加属性

        $(this).attr("属性名","属性值"); //<a 属性名=属性值>我是a标签</a>

    2、读取属性值

      $(this).attr("属性名");

    3、删除属性

      $(this).removeAttr();//删除所有属性

      $(this).removeAttr("属性名");//删除特定属性

    五、复选框的操作

    获取某个值是否是选中状态   $(this).prop("checked");//true选中false未选中

    设置某个值是选中状态  $(this).prop("checked",true);

    例:全选和反选

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>全选反选</title>
        <style>
            body{
                font-size:18px;
            }
        </style>
    </head>
    
    <body>
        <div id="act">
            <label><input type="checkbox" name="" id="all">全选</label>
            <label><input type="checkbox" name="" id="noAll">反选</label>
        </div>
        <div id="content">
            <label><input type="checkbox" name="" id="">西瓜</label>
            <label><input type="checkbox" name="" id="">香蕉</label>
            <label><input type="checkbox" name="" id="">苹果</label>
            <label><input type="checkbox" name="" id="">橙子</label>
            <label><input type="checkbox" name="" id="">葡萄</label>
        </div>
    
        <script src="jQuery1-12-4.js"></script>
        <script>
            var datas = $("#content label input");
            //点击全选,全部选中
            $("#all").click(function () {
                for (var i = 0; i < datas.length; i++) {
                    $(datas[i]).prop("checked", $(this).prop("checked"));
                }
            });
            //点击每一个元素时,判断是否应该勾选全选按钮
            for (var i = 0; i < datas.length; i++) {
                $(datas[i]).click(function () {
                    //所有都选中才选中
                    for (var j = 0; j < datas.length; j++) {
                        if (!$(datas[j]).prop("checked")) {
                            $("#all").prop("checked", false);
                            return;
                        }
                    }
                    $("#all").prop("checked", true);
                });
            }
            //点击反选按钮们进行反向选择
            $("#noAll").click(function () {
                for (var i = 0; i < datas.length; i++) {
                    $(datas[i]).prop("checked") ? $(datas[i]).prop("checked", false) : $(datas[i]).prop("checked",
                        true);
                }
                //判断全选
                for (var j = 0; j < datas.length; j++) {
                    if (!$(datas[j]).prop("checked")) {
                        $("#all").prop("checked", false);
                        return;
                    }
                }
                $("#all").prop("checked", true);
            });
        </script>
    </body>
    
    </html>

    六、样式的操作

      1、获取元素的宽高

        $(this).css("height")   $(this).css("width")  //都是带单位的

        $(this).height();  $(this).width(); //不带单位的

      2、获取定位元素相对于父级的位置

        $(this).offset().top    $(this).offset().left //无单位

      3、窗口滚动的距离

        $(this).scrollTop();//无单位

  • 相关阅读:
    每天一点小进步(8):高效测试用例设计-XMind2TestCase
    每天一点小进步(7):Mqtt客户端理解
    每天一点小进步(6):postman使用指南
    每天一点小进步(5):python编码问题
    每天一点小进步(4): 推拉流协议初识
    每天一点小进步(3):yaml文件的相关知识点
    每天一点小进步(2):python 大文件处理
    每天一点小进步(1):lambda实现列表过滤&trim函数实现
    简单实现 随机发牌算法
    Linux学习(三)
  • 原文地址:https://www.cnblogs.com/dhrwawa/p/10605026.html
Copyright © 2011-2022 走看看