浅谈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的25个步骤 千倍级效率提升
Feb 11 Javascript
js 刷新页面的代码小结 推荐
Apr 02 Javascript
js渐变显示渐变消失示例代码
Aug 01 Javascript
可简单避免的三个JS发布错误的详细介绍
Aug 02 Javascript
JavaScript类型系统之正则表达式
Jan 05 Javascript
js实现图片切换(动画版)
Dec 25 Javascript
JS正则表达式验证中文字符
May 08 Javascript
JavaScript禁止微信浏览器下拉回弹效果
May 16 Javascript
VUE中使用Vue-resource完成交互
Jul 21 Javascript
iview在vue-cli3如何按需加载的方法
Oct 31 Javascript
更优雅的微信小程序骨架屏实现详解
Aug 07 Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
Nov 03 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
smarty section简介与用法分析
2008/10/03 PHP
PHP中array_slice函数用法实例详解
2014/11/25 PHP
详解PHP实现支付宝小程序用户授权的工具类
2018/12/25 PHP
javascript之dhDataGrid Ver2.0.0代码
2007/07/01 Javascript
jquery tab标签页的制作
2010/05/10 Javascript
Javascript中的isNaN函数使用说明
2011/11/10 Javascript
javascript数组的使用
2013/03/28 Javascript
多个$(document).ready()的执行顺序实例分析
2014/07/26 Javascript
详解JavaScript中的Unescape()和String() 函数
2015/11/09 Javascript
js实现简单的验证码
2015/12/25 Javascript
flexslider.js实现移动端轮播
2017/02/05 Javascript
js判断PC端与移动端跳转
2020/12/24 Javascript
几种响应式文字详解
2017/05/19 Javascript
详解NodeJs开发微信公众号
2018/05/25 NodeJs
jQuery阻止事件冒泡实例分析
2018/07/03 jQuery
浅谈react性能优化的方法
2018/09/05 Javascript
vue.js的状态管理vuex中store的使用详解
2019/11/08 Javascript
[03:36]2015国际邀请赛第二日现场精彩集锦
2015/08/06 DOTA
python 判断一个进程是否存在
2009/04/09 Python
python字符串替换示例
2014/04/24 Python
Python基于正则表达式实现文件内容替换的方法
2017/08/30 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
2017/11/30 Python
python操作oracle的完整教程分享
2018/01/30 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
python处理multipart/form-data的请求方法
2018/12/26 Python
python使用writerows写csv文件产生多余空行的处理方法
2019/08/01 Python
Python定时任务随机时间执行的实现方法
2019/08/14 Python
python中lower函数实现方法及用法讲解
2020/12/23 Python
Perfume’s Club中文官网:西班牙美妆在线零售品牌
2020/08/24 全球购物
介绍一下write命令
2012/09/24 面试题
测试驱动开发的主要步骤是什么
2014/12/10 面试题
关于工资低的辞职信
2014/01/14 职场文书
信息技术毕业生自荐信范文
2014/03/13 职场文书
企业公益活动策划方案
2014/08/24 职场文书
房产分割协议书范文
2014/11/21 职场文书
幼儿园保教工作总结2015
2015/10/15 职场文书