浅谈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 相关文章推荐
js checkbox(复选框) 使用集锦
Apr 28 Javascript
jquery中对表单的基本操作代码
Jul 29 Javascript
jquery ajax同步异步的执行最终解决方案
Apr 26 Javascript
javascript获取隐藏dom的宽高 具体实现
Jul 14 Javascript
AngularJs定制样式插入到ueditor中的问题小结
Aug 01 Javascript
深入浅出ES6之let和const命令
Aug 25 Javascript
js模式化窗口问题![window.dialogArguments]
Oct 30 Javascript
JavaScript实现滑动导航栏效果
Aug 30 Javascript
webpack多入口文件页面打包配置详解
Jan 09 Javascript
AjaxFileUpload.js实现异步上传文件功能
Apr 19 Javascript
vue指令v-html使用过滤器filters功能实例
Oct 25 Javascript
JS实现简易图片自动轮播
Oct 16 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
用 Composer构建自己的 PHP 框架之使用 ORM
2014/10/30 PHP
PHP实现QQ空间自动回复说说的方法
2015/12/02 PHP
linux下为php添加iconv模块的方法
2016/02/28 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
2016/11/10 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
json 入门基础教程 推荐
2009/10/31 Javascript
基于jquery实现的省市区级联无ajax
2013/09/24 Javascript
javascript实现控制的多级下拉菜单
2015/07/05 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
2015/09/27 Javascript
jQuery实现图片上传和裁剪插件Croppie
2015/11/29 Javascript
JS实现alert中显示换行的方法
2015/12/17 Javascript
JS实现的仿QQ空间图片弹出效果代码
2016/02/23 Javascript
利用Javascript裁剪图片并存储的简单实现
2017/03/13 Javascript
Ext JS 实现建议词模糊动态搜索功能
2017/05/13 Javascript
vue中将网页打印成pdf实例代码
2017/06/15 Javascript
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
vue-cli项目配置多环境的详细操作过程
2018/10/30 Javascript
JavaScript动态创建二维数组的方法示例
2019/02/01 Javascript
ES6入门教程之变量的解构赋值详解
2019/04/13 Javascript
javascript实现前端分页功能
2020/11/26 Javascript
python33 urllib2使用方法细节讲解
2013/12/03 Python
Python中os.path用法分析
2015/01/15 Python
python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
2015/12/31 Python
Python中文件I/O高效操作处理的技巧分享
2017/02/04 Python
详解Python之数据序列化(json、pickle、shelve)
2017/03/30 Python
python 第三方库的安装及pip的使用详解
2017/05/11 Python
使用tensorflow实现线性回归
2018/09/08 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
Python Opencv提取图片中某种颜色组成的图形的方法
2019/09/19 Python
查看jupyter notebook每个单元格运行时间实例
2020/04/22 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
2021/01/27 Python
向全球直邮输送天然健康产品:iHerb.com
2020/05/03 全球购物
先进教师个人事迹材料
2014/12/15 职场文书
寒假致家长的一封信
2015/10/10 职场文书
《语言的突破》读后感3篇
2019/12/12 职场文书
解决Oracle数据库用户密码过期
2022/05/11 Oracle