浅谈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的一个拖拽到指定区域内的效果
Sep 21 Javascript
基于jQuery的输入框在光标位置插入内容, 并选中
Oct 29 Javascript
javascript写的一个模拟阅读小说的程序
Apr 04 Javascript
jQuery动画出现连续触发、滞后反复执行的解决方法
Jan 28 Javascript
JQuery实现级联下拉框效果实例讲解
Sep 17 Javascript
jQuery实现的放大镜效果示例
Sep 13 Javascript
Node连接mysql数据库方法介绍
Feb 07 Javascript
JavaScript函数中的this四种绑定形式
Aug 15 Javascript
zTree节点文字过多的处理方法
Nov 24 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
May 16 Javascript
浅谈Webpack4 Tree Shaking 终极优化指南
Nov 18 Javascript
ant design charts 获取后端接口数据展示
May 25 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
基于mysql的bbs设计(五)
2006/10/09 PHP
Smarty+QUICKFORM小小演示
2007/02/25 PHP
php max_execution_time执行时间问题
2011/07/17 PHP
ThinkPHP 404页面的设置方法
2015/01/14 PHP
php curl发送请求实例方法
2019/08/01 PHP
laravel框架模型、视图与控制器简单操作示例
2019/10/10 PHP
javascript学习笔记(一) 在html中使用javascript
2012/06/18 Javascript
javascript实现数字+字母验证码的简单实例
2014/02/10 Javascript
jquery中的$(document).ready()使用小结
2014/02/14 Javascript
javascript对中文按照拼音排序代码
2014/08/20 Javascript
JavaScript判断是否为数组的3种方法及效率比较
2015/04/01 Javascript
BootStrap Table后台分页时前台删除最后一页所有数据refresh刷新后无数据问题
2016/12/28 Javascript
js实现百度搜索提示框
2017/02/05 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
2018/09/19 Javascript
React中阻止事件冒泡的问题详析
2019/04/12 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
Vue循环中多个input绑定指定v-model实例
2020/08/31 Javascript
python list语法学习(带例子)
2013/11/01 Python
浅谈python字典多键值及重复键值的使用
2016/11/04 Python
树莓派4B安装Tensorflow的方法步骤
2020/07/16 Python
Python偏函数实现原理及应用
2020/11/20 Python
逼真的HTML5树叶飘落动画
2016/03/01 HTML / CSS
canvas裁剪clip()函数的具体使用
2018/03/01 HTML / CSS
办公室文秘自我评价
2013/09/21 职场文书
销售人员中英文自荐信
2013/09/22 职场文书
旅游管理专业生自荐信范文
2014/01/02 职场文书
音乐教学案例
2014/01/30 职场文书
《大江保卫战》教学反思
2014/04/11 职场文书
授权委托书范文
2014/07/31 职场文书
银行催款通知书
2015/04/17 职场文书
入党转正申请报告
2015/05/15 职场文书
2016关于学习党章的心得体会
2016/01/15 职场文书
八年级数学教学反思
2016/02/17 职场文书
深度学习详解之初试机器学习
2021/04/14 Python
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
2021/05/12 Python
win sever 2022如何占用操作主机角色
2022/06/25 Servers