小编这次要给大家分享的是如何使用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.logd) //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").setAttributeNoded); alertdocument.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").setAttributeNoded);
alertdocument.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.logd) // value="aaa"
document.getElementById"sss").removeAttributeNoded);
alertdocument.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").setAttributeNoded); alertdocument.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.loga); //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.logtypeof d); // object
console.logd); // value="aaa";
document.writed.name); //显示 value
document.writed.value); //显示 aaa
</script>
<body> <div class="box" a="10" b="20" id="cont"></div> </body> <script> var obox=document.querySelector".box"); console.logobox.attributes[3]) //id="cont"; console.logtypeof obox.attributes[3]) //object; console.logobox.attributes[3].nodeName); //id;显示数组中第四个属性的属性名 console.logobox.attributes[3].nodeValue); //cont;显示数组中第四个属性的属性值 console.logobox.attributes[3].nodeType); //2; 元素节点属性的返回值为2 </script>
