浅谈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 相关文章推荐
jQuery MD5加密实现代码
Mar 15 Javascript
关于Mozilla浏览器不支持innerText的解决办法
Jan 01 Javascript
coffeescript使用的方式汇总
Aug 05 Javascript
高性能JavaScript循环语句和条件语句
Jan 20 Javascript
静态页面html中跳转传值的JS处理技巧
Jun 22 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
Sep 23 Javascript
Nginx 配置多站点vhost 的方法
Jan 07 Javascript
使用weixin-java-tools完成微信授权登录、微信支付的示例
Sep 26 Javascript
vue基础之v-bind属性、class和style用法分析
Mar 11 Javascript
微信小程序修改数组长度的问题的解决
Dec 17 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
Mar 09 Javascript
vue data对象重新赋值无效(未更改)的解决方式
Jul 24 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
PHP中使用匿名函数操作数据库的例子
2014/11/17 PHP
thinkphp制作404跳转页的简单实现方法
2016/09/22 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
2017/07/04 PHP
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
5款Javascript颜色选择器
2009/10/25 Javascript
jquery实现商品拖动选择效果代码(自写)
2013/05/28 Javascript
Jquery多选框互相内容交换的实例代码
2013/07/04 Javascript
jQuery圆形统计图开发实例
2015/01/04 Javascript
JQuery实现动态添加删除评论的方法
2015/05/18 Javascript
分享一道关于闭包、bind和this的面试题
2017/02/20 Javascript
Angular2入门教程之模块和组件详解
2017/05/28 Javascript
Angular 表单控件示例代码
2017/06/26 Javascript
jQuery 实现鼠标画框并对框内数据选中的实例代码
2017/08/29 jQuery
vue项目tween方法实现返回顶部的示例代码
2018/03/02 Javascript
layui--js控制switch的切换方法
2019/09/03 Javascript
vue.js+ElementUI实现进度条提示密码强度效果
2020/01/18 Javascript
[43:32]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第一场
2014/05/26 DOTA
[01:00:17]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第二场 1月25日
2021/03/11 DOTA
在Django中同时使用多个配置文件的方法
2015/07/22 Python
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
python批量添加zabbix Screens的两个脚本分享
2017/01/16 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
Python基于Tkinter模块实现的弹球小游戏
2018/12/27 Python
在python带权重的列表中随机取值的方法
2019/01/23 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
python web框架 django wsgi原理解析
2019/08/20 Python
python zip,lambda,map函数代码实例
2020/04/04 Python
省级四好少年事迹材料
2014/01/25 职场文书
《落花生》教学反思
2014/02/25 职场文书
房地产促销活动方案
2014/03/01 职场文书
室内设计专业自荐信
2014/05/31 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
餐厅感恩节活动策划方案
2014/10/11 职场文书
2014感恩节演讲稿大全
2014/10/11 职场文书
写给同学的新学期寄语
2015/02/27 职场文书
Android基于Fresco实现圆角和圆形图片
2022/04/01 Java/Android