美文网首页
JS Attribute属性操作详解

JS Attribute属性操作详解

作者: 知名大学士 | 来源:发表于2020-03-20 22:54 被阅读0次
    • Attribute是属性的意思,文章仅对部分兼容IE和FF的Attribute相关的介绍。
    • attributes:获取一个属性作为对象
    • getAttribute:获取某一个属性的值
    • setAttribute:建立一个属性,并同时给属性捆绑一个值
    • createAttribute:仅建立一个属性
    • removeAttribute:删除一个属性
    • getAttributeNode:获取一个节点作为对象
    • setAttributeNode:建立一个节点
    • removeAttributeNode:删除一个节点
      attributes可以获取一个对象中的一个属性,并且作为对象来调用,注意在这里要使用“[]”,IE在这里可以使用“()”,考虑到兼容性的问题,要使用“[]”。关于attributes属性的使用方式上,IE和FF有巨大的分歧,在此不多介绍。

    attributes的使用方法:(IE和FF通用)

    <body>
        <div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div>
    </body>
    <script>
        var d = document.getElementById("sss").attributes["value"];
        document.write(d.name);
        document.write(d.value);
        //显示value aaa
    </script>
    

    getAttributesetAttributecreateAttributeremoveAttribute四兄弟的概念比较容易理解,使用方法也比较简单,唯一需要注意这几点:

    1. createAttribute在使用的时候不需要基于对象的,document.createAttribute()就可以。
    2. setAttributecreateAttribute在使用的时候不要使用nametypevalue等单词,IE和FF的反应都奇怪的难以理解。
    3. createAttribute在使用的时候如果只定义了名字,没有d.nodeValue = "hello";语句定义值,FF会认为是一个空字符串,IE认为是undefined,注意到这点就可以了。

    getAttribute的使用方法:

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

    setAttribute的使用方法:(你会发现多了一个名为good的属性hello)

    <body>
        <div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div>
    </body>
    <script>
        var d = document.getElementById("sss").setAttribute("good","hello");
        alert(document.getElementById("t").innerHTML)
    </script>
    

    createAttribute的使用方法:(多了一个名为good的空属性)

    <head>
        <meta charset="UTF-8">
        <title></title>
        <script>
          window.onload = function (){
            var oBox = document.getElementById('box');
            alert( document.body.innerHTML );
            oBox.setAttribute('value','name');
            alert( document.body.innerHTML );
            attr = document.createAttribute('hallo');
            alert( document.body.innerHTML );/*同上*/
            attr.nodeValue = 'world';/*对自定义属性进行编辑*/
            alert( document.body.innerHTML );/*同上*/
            oBox.setAttributeNode(attr);/*对标签插入自定义属性*/
            alert( document.body.innerHTML );/*改变*/
          };
        </script>
      </head>
      <body>
        <ul id="box">
        </ul>
      </body>
    

    removeAttribute的使用方法:(少了一个)

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

    getAttributeNodesetAttributeNoderemoveAttributeNode三个方法的特点是都直接操作一个node(节点),removeAttributeNode在一开始的时候总会用错,但是充分理解了node的含义的时候,就能够应用自如了。

    getAttributeNode的使用方法:

    <body>
        <div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div>
    </body>
    <script>
        var d = document.getElementById("sss").getAttributeNode("value"); 
        document.write(d.name);
        document.write(d.value);
        //显示 value aaa
    </script>
    

    setAttributeNode的使用方法:

    <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);
    </script>
    

    removeAttributeNode的使用方法:

    <body>
        <div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div>
    </body>
    <script>
        var d = document.getElementById("sss").getAttributeNode("value")
        document.getElementById("sss").removeAttributeNode(d); 
        alert(document.getElementById("t").innerHTML);
    </script>
    

    更多的关于attributes属必性问题,可在w3school中查询!

    相关文章

      网友评论

          本文标题:JS Attribute属性操作详解

          本文链接:https://www.haomeiwen.com/subject/noxeyhtx.html