JS Attribute属性操作详解
2020-03-20 本文已影响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>
getAttribute
,setAttribute
,createAttribute
,removeAttribute
四兄弟的概念比较容易理解,使用方法也比较简单,唯一需要注意这几点:
-
createAttribute
在使用的时候不需要基于对象的,document.createAttribute()
就可以。 -
setAttribute
,createAttribute
在使用的时候不要使用name
,type
,value
等单词,IE和FF的反应都奇怪的难以理解。 -
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的含义的时候,就能够应用自如了。
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中查询!