你的位置:首页 > Java教程

[Java教程]JS Attribute属性操作


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>

 


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

1、createAttribute在使用的时候不需要基于对象的,document.createAttribute()就可以。

2、setAttribute,createAttribute在使用的时候不要使用name,type,value等单词,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>

 


 

getAttributeNode,setAttributeNode,removeAttributeNode三个方法的特点是都直接操作一个node(节点),removeAttributeNode在一开始的时候总会用错,但是充分理解了node的含义的时候,就能够应用自如了。http://www.cnblogs.com/wangfupeng1988/p/3639330.html

 

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中查询!