zoukankan      html  css  js  c++  java
  • jQuery---5. 常用API(jQuery属性操作,内容文本值)

    4. jQuery属性操作

    4.1 设置获取元素固有的属性prop()

    4.2 设置获取元素自定义属性值attr()

    4.3 数据缓存data()

    <body>
        <a href="http://www.itcast.com.cn" title="都挺好">都挺好</a>
        <input type="checkbox" checked>
        <div index="1" data-index="2"></div>
        <span>123</span>
        <script>
            $(function() {
                //1.ele.prop("属性名")获取元素固有属性值
                console.log($("a").prop("href")); //http://www.itcast.com.cn/
                $("a").prop("title", "我们都挺好");
    
                $("input").change(function() { //change事件,复选框状态改变时触发,比click合理一点
                    //$(this).prop("checked")   复选框的checked属性:复选框被选中则该属性为true,未被选中则false
                    console.log($(this).prop("checked"));
                });
    
    
                //2.ele.attr("属性名")获取元素自定义属性值
                console.log($("div").attr("index")); //1
                $("div").attr("index", 4); //将属性值index修改为4
                //该方法还可以获取H5自定义属性
                console.log($("div").attr("data-index")); //2
    
    
                //3. 数据缓存data()这个里面的数据是存放在元素的内存里面
                $("span").data("uname", "andy"); //uname看作属性,andy看作属性值。   此时在DOM中span里的属性没有任何变化和修改,还是<span>123</span>
                console.log($("span").data("uname")); //andy
                //该方法还可以读取H5自定义属性data-index
                console.log($("div").data("index")); //2(数字型)   data-被省略
            })
        </script>
    </body>
    

    案例:购物车案例模块-全选

    • 结构
    <!-- 购物车主要核心区域 -->
    <div class="cart-warp">
        <!-- 头部全选模块 -->
        <div class="cart-thead">
            <div class="t-checkbox">
                <input type="checkbox" name="" id="" class="checkall"> 全选
            </div>
            //省略了不重要的内容
        </div>
        <!-- 商品详细模块 -->
        <div class="cart-item-list">
    
            <div class="cart-item check-cart-item">
                <div class="p-checkbox">
                    <input type="checkbox" name="" id="" checked class="j-checkbox">
                </div>
                //省略了不重要的内容
            </div>
    
            <div class="cart-item">
                ...
            </div>
    
            <div class="cart-item">
              ...
            </div>
        </div>
    
        <!-- 结算模块 -->
        <div class="cart-floatbar">
            <div class="select-all">
                <input type="checkbox" name="" id="" class="checkall">全选
            </div>
            //省略了不重要的内容
        </div>
    </div>
    
    • JS
    $(function() {
        //1. 全选 全不选功能模块
        //就是把全选按钮checkall的状态赋值给其他三个小按钮j-checkbox和另一个全选按钮就可以了
        //事件用change
        $(".checkall").change(function() {
            $(".j-checkbox,.checkall").prop("checked", $(this).prop("checked"));
        });
    
        //2. 如果小复选框被选中的个数等于3就应该把全选按钮选上,否则全选按钮不选
        //$(".j-checkbox:checked")表示被选中的复选框
        //$(".j-checkbox:checked").length被选中的复选框的个数
        $(".j-checkbox").change(function() {
            if ($(".j-checkbox:checked").length === $(".j-checkbox").length) {
                $(".checkall").prop("checked", true);
            } else {
                $(".checkall").prop("checked", false);
            }
        })
    })
    

    5. jQuery内容文本值

    <body>
        <div>
            <span>我是内容</span>
        </div>
        <input type="text" value="请输入内容">
        <script>
            //1. 获取设置元素内容html()
            console.log($("div").html()); // <span>我是内容</span>   标签也会被获取过来
            //修改为
            // $("div").html("123");
    
            //2. 获取设置元素文本内容text()
            console.log($("div").text()); //我是内容  只获取内容
            //修改为
            $("div").text("123");
    
            //3. 获取设置"表单"值val()
            console.log($("input").val()); //请输入内容
            //修改为
            $("input").val("123");
        </script>
    </body>
    

    案例:购物车增减商品数量

    • 结构
    <!-- 商品详细模块 -->
    <div class="cart-item-list">
    
        <div class="cart-item check-cart-item">
            //省略了不重要的内容
            <div class="p-num">
                <div class="quantity-form">
                    <a href="javascript:;" class="decrement">-</a>
                    <input type="text" class="itxt" value="1">
                    <a href="javascript:;" class="increment">+</a>
                </div>
            </div>
            <div class="p-sum">¥12.60</div>
            <div class="p-action"><a href="javascript:;">删除</a></div>
        </div>
    
        <div class="cart-item">
            ...//(同上)
        </div>
    
        <div class="cart-item">
            ...//(同上)
        </div>
    </div>
    
    • JS
    $(function() {
        //1. 全选 全不选功能模块
        //就是把全选按钮checkall的状态赋值给其他三个小按钮j-checkbox和另一个全选按钮就可以了
        //事件用change
        $(".checkall").change(function() {
            $(".j-checkbox,.checkall").prop("checked", $(this).prop("checked"));
        });
    
        //2. 如果小复选框被选中的个数等于3就应该把全选按钮选上,否则全选按钮不选
        //$(".j-checkbox:checked")表示被选中的复选框
        //$(".j-checkbox:checked").length被选中的复选框的个数
        $(".j-checkbox").change(function() {
            if ($(".j-checkbox:checked").length === $(".j-checkbox").length) {
                $(".checkall").prop("checked", true);
            } else {
                $(".checkall").prop("checked", false);
            }
        });
    
        //3.增减商品数量模块 首先声明一个变量,当我们点击+号(increment),就让这个值++。然后赋值给文本框
        $(".increment").click(function() {
            var n = $(this).siblings(".itxt").val();
            n++;
            $(this).siblings(".itxt").val(n);
        });
        $(".decrement").click(function() {
            var n = $(this).siblings(".itxt").val();
            if (n == 1) {
                return false;
            }
            n--;
            $(this).siblings(".itxt").val(n);
        });
    })
    

    案例:购物车案例模块---修改商品小计
    当购买某个商品数量增加的时候,该商品对应的小计也增加

    • 结果.toFixed(n)//对计算结果保留小数点后n位
    • 对于parents()稍加说明如下【parents()可以避免逐层向上找父亲的麻烦】
    <body>
        <div class="one">
            <div class="two">
                <div class="three">
                    <div class="four">我不容易</div>
                </div>
            </div>
        </div>
        <script>
            $(function() {
                //站在four找one
                console.log($(".four").parent().parent().parent());
    
                //parents()获取全部父亲  
                console.log($(".four").parents());
                //站在four找one   parents()
                console.log($(".four").parents(".one"));//返回指定的祖先元素
            })
        </script>
    </body>
    
    • 结构
    <!-- 商品详细模块 -->
    <div class="cart-item-list">
    
        <div class="cart-item check-cart-item">
            //(省略不重要的内容)
            <div class="p-price">¥12.60</div>
            <div class="p-num">
                <div class="quantity-form">
                    <a href="javascript:;" class="decrement">-</a>
                    <input type="text" class="itxt" value="1">
                    <a href="javascript:;" class="increment">+</a>
                </div>
            </div>
            <div class="p-sum">¥12.60</div>
            <div class="p-action"><a href="javascript:;">删除</a></div>
        </div>
    
        <div class="cart-item">
           ...
        </div>
    
        <div class="cart-item">
           ...
        </div>
    </div>
    
    • JS
    $(function() {
        //1. 全选 全不选功能模块
        //就是把全选按钮checkall的状态赋值给其他三个小按钮j-checkbox和另一个全选按钮就可以了
        //事件用change
        $(".checkall").change(function() {
            $(".j-checkbox,.checkall").prop("checked", $(this).prop("checked"));
        });
    
        //2. 如果小复选框被选中的个数等于3就应该把全选按钮选上,否则全选按钮不选
        //$(".j-checkbox:checked")表示被选中的复选框
        //$(".j-checkbox:checked").length被选中的复选框的个数
        $(".j-checkbox").change(function() {
            if ($(".j-checkbox:checked").length === $(".j-checkbox").length) {
                $(".checkall").prop("checked", true);
            } else {
                $(".checkall").prop("checked", false);
            }
        });
    
        //3.增减商品数量模块 首先声明一个变量,当我们点击+号(increment),就让这个值++。然后赋值给文本框
        $(".increment").click(function() {
            var n = $(this).siblings(".itxt").val();
            n++;
            $(this).siblings(".itxt").val(n);
    
            //4.计算小计模块 文本框的值*当前商品单价
            //当前商品价格p
            // var p = $(this).parent().parent().siblings(".p-price").html();
            var p = $(this).parents(".p-num").siblings(".p-price").html();
            p = p.substr(1); //对字符串从第一位往后截取   去掉¥
    
            //将小计结果保留后两位toFixed(2)
            var price = (p * n).toFixed(2);
            // $(this).parent().parent().siblings(".p-sum").html("¥" + p * n); 改行改进写法如下
            $(this).parents(".p-num").siblings(".p-sum").html("¥" + price);
        });
    
    
        $(".decrement").click(function() {
            var n = $(this).siblings(".itxt").val();
            if (n == 1) {
                return false;
            }
            n--;
            $(this).siblings(".itxt").val(n);
    
            //4
            var p = $(this).parents(".p-num").siblings(".p-price").html();
            p = p.substr(1); //对字符串从第一位往后截取   去掉¥
            $(this).parents(".p-num").siblings(".p-sum").html("¥" + (p * n).toFixed(2));
        });
    })
    

    $(function() {
        //1. 全选 全不选功能模块
        //就是把全选按钮checkall的状态赋值给其他三个小按钮j-checkbox和另一个全选按钮就可以了
        //事件用change
        $(".checkall").change(function() {
            $(".j-checkbox,.checkall").prop("checked", $(this).prop("checked"));
        });
    
        //2. 如果小复选框被选中的个数等于3就应该把全选按钮选上,否则全选按钮不选
        //$(".j-checkbox:checked")表示被选中的复选框
        //$(".j-checkbox:checked").length被选中的复选框的个数
        $(".j-checkbox").change(function() {
            if ($(".j-checkbox:checked").length === $(".j-checkbox").length) {
                $(".checkall").prop("checked", true);
            } else {
                $(".checkall").prop("checked", false);
            }
        });
    
        //3.增减商品数量模块 首先声明一个变量,当我们点击+号(increment),就让这个值++。然后赋值给文本框
        $(".increment").click(function() {
            var n = $(this).siblings(".itxt").val();
            n++;
            $(this).siblings(".itxt").val(n);
    
            //4.计算小计模块 文本框的值*当前商品单价
            //当前商品价格p
            // var p = $(this).parent().parent().siblings(".p-price").html();
            var p = $(this).parents(".p-num").siblings(".p-price").html();
            p = p.substr(1); //对字符串从第一位往后截取   去掉¥
    
            //将小计结果保留后两位toFixed(2)
            var price = (p * n).toFixed(2);
            // $(this).parent().parent().siblings(".p-sum").html("¥" + p * n); 改行改进写法如下
            $(this).parents(".p-num").siblings(".p-sum").html("¥" + price);
        });
    
    
        $(".decrement").click(function() {
            var n = $(this).siblings(".itxt").val();
            if (n == 1) {
                return false;
            }
            n--;
            $(this).siblings(".itxt").val(n);
    
            //4
            var p = $(this).parents(".p-num").siblings(".p-price").html();
            p = p.substr(1); //对字符串从第一位往后截取   去掉¥
            $(this).parents(".p-num").siblings(".p-sum").html("¥" + (p * n).toFixed(2));
        });
    
    
        //5. 用户修改文本框的值,也要重新计算小计结果
        $(".itxt").change(function() {
            //先得到当前文本框的值  数量
            var n = $(this).val();
            //当前商品单价
            var p = $(this).parents(".p-num").siblings(".p-price").html();
            p = p.substr(1); //对字符串从第一位往后截取   去掉¥
    
            $(this).parents(".p-num").siblings(".p-sum").html("¥" + (p * n).toFixed(2));
    
        })
    })
    
  • 相关阅读:
    jQuery实现radio第一次点击选中第二次点击取消功能(转)
    好用的文件下载类
    Windows获取远程Linux局域网内的mysql连接
    linux通过端口号查找程序执行路径
    linux几个命令
    java判断是移动端还是pc端
    jsp传给java属性,java生成json串,方便以后取出来
    如何在线程中获取spring 管理的bean
    [DeploymentService:290066]Error occurred while downloading files from admin server for deployment request "0". Underlying error is: "null"
    double,失去精度
  • 原文地址:https://www.cnblogs.com/deer-cen/p/12354064.html
Copyright © 2011-2022 走看看