zoukankan      html  css  js  c++  java
  • jQuery 属性操作

    标准属性

    prop()

       获取与设置jQuery对象中元素的标准属性值

       标准属性是指一些DOM元素自带的属性或window对象,如<a>titlehreftarget等等

       可以单个设置标准属性的值,也可以使用{}一次性设置多个标准属性的值

    <body>
            <a>博客园</a>
    </body>
    <script src='https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js'></script>
    <script>
    
            "use strict";
            $("a").prop({"href":"https://www.cnblogs.com/","title":"博客园主页"});  // 设置多个
            $("a").prop("target","_blank");  // 单一设置
    
            // <a href="https://www.cnblogs.com/" title="博客园主页" target="_blank">博客园</a>
            
    </script>
    

    removeProp()

       将一个标准属性的值设置成undefined

       个人测试:该方法只在jQuery1.x版本中有效,新的标准属性值为undefined

       1.6新增,23中设置均无效

    <body>
            <a>这是一个链接</a>
            <button type="button">点我添加标准属性</button>
            <button type="button">点我删除标准属性</button>
    </body>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>
    
            "use strict";
    
            
            $("button").eq(0).on("click", (event) => {
                    $("a").prop("title","已添加");
                    // <a title="已添加">这是一个链接</a>
            });
    
            $("button").eq(1).on("click", (event) => {
                    $("a").removeProp("title");
                    // <a title="undefined">这是一个链接</a>
            });
    
    </script>
    

    特征属性

    attr()

       获取与设置jQuery对象中元素的特征属性值

       特征属性是值一些用户自定义的属性,在设置时应该注意与标准属性的命名冲突问题

       可以单个设置特征属性的值,也可以使用{}一次性设置多个特征属性的值

    <body>
            <div></div>
    </body>
    <script src='https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js'></script>
    <script>
    
            "use strict";
            $("div").attr({"data-color":"red","data-size":"w:100,h:50"});  // 设置多个
            $("div").attr("data-show","true");  // 单一设置
    
            // <div data-color="red" data-size="w:100,h:50" data-show="true"></div>
            
    </script>
    

    removeAttr()

       将一个特征属性及其属性值删除

    <body>
            <a>这是一个链接</a>
            <button type="button">点我添加标准属性</button>
            <button type="button">点我删除标准属性</button>
    </body>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script>
    
            "use strict";
    
            
            $("button").eq(0).on("click", (event) => {
                    $("a").attr("data-linkName","链接");
                    // <a data-linkname="链接">这是一个链接</a>
            });
    
            $("button").eq(1).on("click", (event) => {
                    $("a").removeAttr("data-linkName");
                    // <a>这是一个链接</a>
            });
    
    </script>
    

    属性集

       建议对特征属性进行特殊命名操作,如添加上data-前缀,与标准属性区分。

       如果您这样做,可以利用属性集对特征属性进行更加方便的管理。

    data()

       所有的以data-开头的特征属性都会存放进行data()属性集中,我们可以通过data()进行获取与设置其属性值。

    <body>
            <div class="show top" data-color="red" data-font_size="15"></div>
    </body>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script>
    
            "use strict";
    
            console.log($("div").data()); // {font_size: 15, color: "red"}  获取所有
            
            console.log($("div").data("color")); // red 获取一个
    
            $("div").data("font_size","100"); // 设置一个属性集属性 这不会在HTML文档中显示。但是确实已经设置了
    
            console.log($("div").data());  // {font_size: "100", color: "red"}
    
            $("div").data({"font-size":"120","color":"black"}); // 设置多个 同样的不会再HTML文档中显示
    
            console.log($("div").data());  // {{font_size: "100", color: "black", fontSize: "120"}
    
    </script>
    

    removeData()

       删除属性集中的一个属性。不能是由HTML文档上设置的特征属性,必须由data()所设置

    <body>
            <div></div>
            <button id="btn1">向 div 元素添加数据</button><br />
            <button id="btn2">从 div 元素删除数据</button>
    
    </body>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script>
    
            "use strict";
            $(document).ready(function () {
                    $("#btn1").click(function () {
                            $("div").data("greeting", "Hello World");  // 必须由data所设置
                            alert("Greeting is: " + $("div").data("greeting"));
                    });
    
                    $("#btn2").click(function () {
                            $("div").removeData("greeting");
                            alert("Greeting is: " + $("div").data("greeting"));
                    });
            });
    
    </script>
    

    节点内容

    html()

       获取jQuery对象DOM标签中的HTML内容,并且也可以向标签中添加HTML内容,同时触发浏览器的解析器重绘DOM。

       与JavaSctip中的innerHTML属性效果相同。

    <body>
            <div><span>获取</span></div>
    </body>
    <script src='https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js'></script>
    <script>
    
            "use strict";
            console.log($("div").html()); // 获取内容  <span>获取</span>
            $("div").html("<mark>设置</mark>"); // 设置内容
            console.log($("div").html()); // 获取内容  <mark>设置</mark>
    
    </script>
    

    text()

       访问或添加文本内容到jQuery对象里的元素中。

       与JavaScript中的innerTexttextContentd属性效果相同。

       获取时忽略所有标签

       设置时将内容中的标签当文本对待不进行解析

    <body>
            <div><span>获取</span></div>
    </body>
    <script src='https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js'></script>
    <script>
    
            "use strict";
            console.log($("div").text()); // 获取内容  获取
            $("div").text("<mark>设置</mark>"); // 设置内容,会当做普通文本添加,而不是标签元素
            console.log($("div").text()); // 获取内容  <mark>设置</mark>
    
    </script>
    

    表单内容

    val()

       获得jQuery对象中第一个元素的当前值,常用于表单标签。

    <body>
            <input type="text" value="云崖先生">
    </body>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script>
    
            "use strict";
    
            console.log($(":text").val());  // 云崖先生
            
    </script>
  • 相关阅读:
    BZOJ1717: [Usaco2006 Dec]Milk Patterns 产奶的模式
    BZOJ1031: [JSOI2007]字符加密Cipher
    关于后缀数组的实现
    BZOJ1692: [Usaco2007 Dec]队列变换
    BZOJ1725: [Usaco2006 Nov]Corn Fields牧场的安排
    POJ 2386 Lake Counting(搜索联通块)
    POJ 2386 Lake Counting(搜索联通块)
    Java演示设计模式中的写代码的代码
    Java演示设计模式中的写代码的代码
    源码映射
  • 原文地址:https://www.cnblogs.com/Yunya-Cnblogs/p/13551267.html
Copyright © 2011-2022 走看看