浅谈js中的attributes和Attribute的用法与区别


Posted in Javascript onJuly 16, 2020

一: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>

到此这篇关于浅谈js中的attributes和Attribute的用法与区别的文章就介绍到这了,更多相关js中attributes和Attribute内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
Extjs学习笔记之九 数据模型(上)
Jan 11 Javascript
JS中setInterval、setTimeout不能传递带参数的函数的解决方案
Apr 28 Javascript
javascript匿名函数应用示例介绍
Mar 07 Javascript
jquery查找父元素、子元素(个人经验总结)
Apr 09 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
Mar 13 Javascript
js/jquery判断浏览器类型的方法小结
May 12 Javascript
Vue.js 递归组件实现树形菜单(实例分享)
Dec 21 Javascript
基于Vue.js实现tab滑块效果
Jul 23 Javascript
node.js中使用Export和Import的方法
Sep 18 Javascript
IntersectionObserver实现图片懒加载的示例
Sep 29 Javascript
Vue实现表格中对数据进行转换、处理的方法
Sep 06 Javascript
小程序跨页面交互的作用与方法详解
Jan 07 Javascript
JS自定义右键菜单实现代码解析
Jul 16 #Javascript
JS如何在不同平台实现多语言方式
Jul 16 #Javascript
vue使用axios实现excel文件下载的功能
Jul 16 #Javascript
vue实现自定义多选按钮
Jul 16 #Javascript
vue实现div单选多选功能
Jul 16 #Javascript
vue+AI智能机器人回复功能实现
Jul 16 #Javascript
vue.js实现h5机器人聊天(测试版)
Jul 16 #Javascript
You might like
BBS(php &amp; mysql)完整版(五)
2006/10/09 PHP
php设计模式 Decorator(装饰模式)
2011/06/26 PHP
PHP Global定义全局变量使用说明
2013/08/15 PHP
php实现只保留mysql中最新1000条记录
2015/06/18 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
2016/12/23 PHP
详解yii2实现分库分表的方案与思路
2017/02/03 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
2020/01/26 PHP
jquery pagination插件实现无刷新分页代码
2009/10/13 Javascript
Javascript跨域请求的4种解决方式
2013/03/17 Javascript
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
js实现下拉框选择要显示图片的方法
2015/02/16 Javascript
基于Javascript实现二级联动菜单效果
2016/03/04 Javascript
jQuery动态添加
2016/04/07 Javascript
Vue组件通信实践记录(推荐)
2017/08/15 Javascript
Node.js实现发送邮件功能
2017/11/06 Javascript
从源码里了解vue中的nextTick的使用
2018/11/22 Javascript
小程序hover-class点击态效果实现
2019/02/26 Javascript
微信小程序传值以及获取值方法的详解
2019/04/29 Javascript
springboot+vue实现文件上传下载
2020/11/17 Vue.js
Python命名空间详解
2014/08/18 Python
python计算圆周率pi的方法
2015/07/11 Python
基python实现多线程网页爬虫
2015/09/06 Python
Python 给定的经纬度标注在地图上的实现方法
2019/07/05 Python
python常用数据重复项处理方法
2019/11/22 Python
关于探究python中sys.argv时遇到的问题详解
2021/02/23 Python
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
南威尔士家居商店:Leekes
2016/10/25 全球购物
函授自我鉴定
2013/11/06 职场文书
四年级语文教学反思
2014/02/05 职场文书
药店营业员岗位职责
2015/04/14 职场文书
产品调价通知函
2015/04/20 职场文书
【2·13】一图读懂中国无线电发展
2022/02/18 无线电
React四级菜单的实现
2022/04/08 Javascript
Python可视化神器pyecharts绘制水球图
2022/07/07 Python