zoukankan      html  css  js  c++  java
  • js中的attributes和Attribute的用法和区别。

    一:Attribute的几种用法和含义(attributes和Attribute都是用来操作属性的)

    getAttribute:获取某一个属性的值;

    setAttribute:建立一个属性,并同时给属性捆绑一个值;

    createAttribute:仅建立一个属性;

    removeAttribute:删除一个属性;

    getAttributeNode:获取一个节点作为对象;

    setAttributeNode:建立一个节点;

    removeAttributeNode:删除一个节点;

    1.getAttribute:

    <body>
        <div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div>
    </body>
    <script>
        var d=document.getElementById("sss").getAttribute("value");
        console.log(d)            //aaa;
    </script>

    get 取得的返回值是属性值。

    2.setAtribute:

    <div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div>
    </body>
    <script>
         var d = document.createAttribute("good");
         document.getElementById("sss").setAttributeNode(d);
         alert(document.getElementById("t").innerHTML)   //弹出框<input type="hidden" id="sss" value="aaa" good="">;
                                    //多了一个属性为good;但是没有给其设置属性值;所以为空。
    </script>
    // obox.setAttribute("a","b")  返回值是undifined;表示给标签里面加上一个属性a;属性值
                                       // 为b;若设置的属性已经存在,那么仅限设置/更改值;直接设置 
                                        //给了标签,看不到返回值,但在html页面中可以看到属性已经被添加到了标签中。

    3.createAttribute:

    <body>
    <div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div>
    </body>
    <script>
         var d = document.createAttribute("good");
         document.getElementById("sss").setAttributeNode(d);
         alert(document.getElementById("t").innerHTML)  //弹出框<input type="hidden" id="sss" value="aaa" good="">;
                                                         //多了一个属性,属性值为空
    </script>

    4.removeAttribute:

    <body>
    <div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div>
    </body>
    <script>
         var d = document.getElementById("sss").getAttributeNode("value")
        console.log(d) // value="aaa" document.getElementById(
    "sss").removeAttributeNode(d); alert(document.getElementById("t").innerHTML); //弹出框<input type = "hidden" id = "sss">; //在标签中删除属性value </script>

    getAttribute,setAttribute,createAttribute,removeAttribute四兄弟的概念比较容易理解
    ,使用方法也比较简单,唯一需要注意这几点:
    1、createAttribute在使用的时候不需要基于对象的,document.createAttribute()就可以。
    2、setAttribute,createAttribute在使用的时候如果是使用的时候不要使用name,type,value等单词.
    3、createAttribute在使用的时候如果只定义了名字,没有d.nodeValue = "hello";语句定义值,FF会认为是一个空字符串,IE认为是undefined。

    getAttributeNode,setAttributeNode,removeAttributeNode三个方法的特点是都直接操作一个node(节点)。

    例:

    <body>
    <div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div>
    </body>
    <script>
         var d = document.createAttribute("good");
         document.getElementById("sss").setAttributeNode(d);
         alert(document.getElementById("t").innerHTML);   //弹出框<input type="hidden" id="sss" value="aaa" good="">;
    </script>

    setAttributeNode() 方法用于添加新的属性节点。参数:attributenode;必须填写你要添加的属性节点。

    如果元素中已经存在指定名称的属性,那么该属性将被新属性替代。如果新属性替代了已有的属性,则返回被替代的属性,否则返回 NULL。

    ======================================================================

    二:attributes的用法:

      attributes可以获取一个对象中的一个属性,并且作为对象来调用,注意在这里要使用“[]”;attributes 属性返回指定节点属性的集合。你可以使用 length 属性确定属性的数量,然后你可以遍历所有的属性节点提取你想要的信息。 每个属性都是可用属性节点对象。

      节点的方法,前缀一定是节点。

      对象.attributes                //获得所有属性节点,返回一个数组(伪数组)

    <body>
        <div id = "t">
        <input type = "text" id = "sss" value = "aaa">
    </body>
    <script type="text/javascript">
        var a=document.getElementById("sss").attributes;
        console.log(a);    //NamedNodeMap {0: type, 1: id, 2: value, type: type, id: id, value: value, length: 3};      
                  //attributes获得所有的属性节点,返回一个数组(伪数组);

    // attributes可以获取一个对象中的一个属性,并且作为对象来调用,注意在这里要使用“[]” var d = document.getElementById("sss").attributes["value"]; console.log(typeof d); // object console.log(d); // value="aaa"; document.write(d.name); //显示 value document.write(d.value); //显示 aaa </script>
    <body>
        <div class="box" a="10" b="20" id="cont"></div>
    </body>
    <script>
        var obox=document.querySelector(".box");
        console.log(obox.attributes[3])           //id="cont";
    
        console.log(typeof obox.attributes[3])      //object;
    
        console.log(obox.attributes[3].nodeName);    //id;显示数组中第四个属性的属性名
    
        console.log(obox.attributes[3].nodeValue);   //cont;显示数组中第四个属性的属性值
    
        console.log(obox.attributes[3].nodeType);    //2;  元素节点属性的返回值为2
    
    </script>
    疲惫的生活需要一个温柔的梦和一个很爱的人
  • 相关阅读:
    8张图理解Java
    PhotoShop切图
    Java中堆内存和栈内存详解【转】
    Java编程性能优化一些事儿【转】
    Java反射机制--笔记
    JUnit单元测试--IntelliJ IDEA
    深入理解Java:自定义java注解
    基于值函数的强化学习 小例子(策略退化)
    动态规划中 策略迭代 和 值迭代 的一个小例子
    爬格子问题(经典强化学习问题) Sarsa 与 Q-Learning 的区别
  • 原文地址:https://www.cnblogs.com/zhouqingfeng/p/11406240.html
Copyright © 2011-2022 走看看