浅谈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中批量给元素绑定事件过程中的相关问题使用闭包解决
Apr 15 Javascript
jquery.cookie用法详细解析
Dec 18 Javascript
纯js实现遮罩层效果原理分析
May 27 Javascript
JS数组(Array)处理函数整理
Dec 07 Javascript
谈谈jQuery Ajax用法详解
Nov 27 Javascript
特殊日期提示功能的实现方法
Jun 16 Javascript
js HTML5多图片上传及预览实例解析(不含前端的文件分割)
Aug 26 Javascript
js基础之DOM中元素对象的属性方法详解
Oct 28 Javascript
使用react实现手机号的数据同步显示功能的示例代码
Apr 03 Javascript
WEB前端性能优化的7大手段详解
Feb 04 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
Aug 06 Javascript
vue离开当前页面触发的函数代码
Sep 01 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格式化工具Beautify PHP小小BUG
2008/04/24 PHP
PHP正则提取不包含指定网址的图片地址的例子
2014/04/21 PHP
PHP实现的简单分页类及用法示例
2016/05/06 PHP
js获取UserControl内容为拼html时提供方便
2014/11/02 Javascript
JS数组(Array)处理函数整理
2014/12/07 Javascript
Jquery 实现弹出层插件
2015/01/28 Javascript
js实现每日自动换一张图片的方法
2015/05/04 Javascript
js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码
2016/09/09 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
深入理解 webpack 文件打包机制(小结)
2018/01/08 Javascript
vue中的模态对话框组件实现过程
2018/05/01 Javascript
React父子组件间的传值的方法
2018/11/13 Javascript
node实现生成带参数的小程序二维码并保存到本地功能示例
2018/12/05 Javascript
自定义javascript验证框架示例【附源码下载】
2019/05/31 Javascript
Vue.js实现tab切换效果
2019/07/24 Javascript
利用原生JS实现欢乐水果机小游戏
2020/04/23 Javascript
taro 实现购物车逻辑的实例代码
2020/06/05 Javascript
Js跳出两级循环方法代码实例
2020/09/22 Javascript
通过C++学习Python
2015/01/20 Python
六个窍门助你提高Python运行效率
2015/06/09 Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
2017/04/17 Python
python selenium UI自动化解决验证码的4种方法
2018/01/05 Python
python smtplib模块自动收发邮件功能(一)
2018/05/22 Python
Python使用进程Process模块管理资源
2020/03/05 Python
Keras 切换后端方式(Theano和TensorFlow)
2020/06/19 Python
css3实现背景模糊的三种方式(小结)
2020/05/15 HTML / CSS
ColourPop美国官网:卡拉泡泡,洛杉矶彩妆品牌
2019/04/28 全球购物
俄罗斯小米家用电器、电子产品和智能家居商店:Poood.ru
2020/04/03 全球购物
《和田的维吾尔》教学反思
2014/04/14 职场文书
护士2014年终工作总结
2014/11/11 职场文书
刘胡兰观后感
2015/06/16 职场文书
小学六年级班主任工作经验交流材料
2015/11/02 职场文书
护理心得体会范文
2016/01/22 职场文书
公司财务制度:成本管理控制制度模板
2019/11/19 职场文书
SpringBoot2零基础到精通之数据库专项精讲
2022/03/22 Java/Android
OpenCV项目实践之停车场车位实时检测
2022/04/11 Python