浅谈JS读取DOM对象(标签)的自定义属性


Posted in Javascript onNovember 21, 2016

DOM对象对于js来说,是个很基础的元素,我们写js一般来说,都一定会对它进行操作。我们可以很方便地给它加上自定义的属性,比如:

<div id="test" class="hello"></div>

var test = document.getElementById("test");

test.adang = "adang";

alert(test.adang);

我们会发现,已经给这个id为test的DOM元素添加了一个叫做adang的属性了,然后在js中,可以调用这个属性。我在写js的时候经常用到这种方法,可以很方便地对某个dom对象添加一些特殊的数据,感觉DOM对象就像一个很好用的容器,可以放一堆数据进去。

进一步想到一个问题,这些属性可以在js中添加,那么是否可以像flex一样,在标签中添加呢?事实上,像id啊,src啊这样的属性,都是可以在 js中添加,也可以在标签上添加的,两种方式js都可以获取数据。这里要说一点,class比较特殊,标签中用的是class,在js中调用却要用 className才行。

像id啊,title,src此类html中支持的属性,可以在标签中设置,然后js访问。那么,如果是像我上面例子中的adang这样自定义的属性呢?DOM可以访问吗?做了个实验,如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
</head>
<script type="text/javascript">
window.onload=function(){
  var test = document.getElementById("test");
  test.adang = "adang";
  alert(test.adang);
}
</script>
<body>
<div id="test"></div> 
</body>
</html>

用js来扩展自定义属性,结果很正常地输出了我们想要的结果,IE和FF下都正常。

然后我又写了第二段代码,如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
</head>
<script type="text/javascript">
window.onload=function(){
  var test = document.getElementById("test");
  alert(test.adang);
}
</script>
<body>
<div id="test" adang="adang"></div> 
</body>
</html>

这次把扩展的属性写到了html标签上。IE下正常输出adang,FF下输出的是undefined。

但是很奇怪的,如果使用DOM提供的方法getAttribute(""),无论是在IE下,还是FF下,都可以得到我们写在标签中的自定义属性。

所以,为了兼容,我们要使用getAttribute("")来获取自定义的标签属性的值。

以上这篇浅谈JS读取DOM对象(标签)的自定义属性就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
tagName的使用,留一笔
Jun 26 Javascript
禁止页面刷新让F5快捷键及右键都无效
Jan 22 Javascript
jquery使用ajax实现微信自动回复插件
Apr 28 Javascript
JS中使用FormData上传文件、图片的方法
Aug 07 Javascript
Mongoose实现虚拟字段查询的方法详解
Aug 15 Javascript
VUE 实现滚动监听 导航栏置顶的方法
Sep 11 Javascript
angularJs select绑定的model取不到值的解决方法
Oct 08 Javascript
js中Array对象的常用遍历方法详解
Jan 17 Javascript
浅谈ECMAScript 中的Array类型
Jun 10 Javascript
es6中比较有用的7个技巧小结
Jul 12 Javascript
如何利用JavaScript编写更好的条件语句详解
Aug 10 Javascript
JS class语法糖的深入剖析
Jul 07 Javascript
AngularJS Phonecat实例讲解
Nov 21 #Javascript
浅谈React 属性和状态的一些总结
Nov 21 #Javascript
JavaScript中关于for循环删除数组元素内容时出现的问题
Nov 21 #Javascript
jQuery用FormData实现文件上传的方法
Nov 21 #Javascript
遍历js中对象的属性和值的实例
Nov 21 #Javascript
JavaScript数据结构链表知识详解
Nov 21 #Javascript
jQuery简单自定义图片轮播插件及用法示例
Nov 21 #Javascript
You might like
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
2010/02/16 PHP
关于PHP内存溢出问题的解决方法
2013/06/25 PHP
php中get_cfg_var()和ini_get()的用法及区别
2015/03/04 PHP
php提高网站效率的技巧
2015/09/29 PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
2020/08/06 PHP
永不消失的title提示代码
2007/02/15 Javascript
javascript编程起步(第七课)
2007/02/27 Javascript
json跟xml的对比分析
2008/06/10 Javascript
javascript实现的像java、c#之类的sleep暂停的函数代码
2010/03/04 Javascript
动态载入/删除/更新外部 JavaScript/Css 文件的代码
2010/07/03 Javascript
javascript页面上使用动态时间具体实现
2014/03/18 Javascript
实例说明为什么不要行内使用javascript
2014/04/18 Javascript
jQuery实现异步获取json数据的2种方式
2014/08/29 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
2014/09/13 Javascript
js+html5绘制图片到canvas的方法
2015/06/05 Javascript
JS实现双击编辑可修改状态的方法
2015/08/14 Javascript
JQuery操作textarea,input,select,checkbox方法
2015/09/02 Javascript
javascript css红色经典选项卡效果实现代码
2016/05/17 Javascript
AngularJS API之copy深拷贝详解及实例
2016/09/14 Javascript
JavaScript数组和对象的复制
2017/03/21 Javascript
layer页面跳转,获取html子节点元素的值方法
2019/09/27 Javascript
原生js实现拖拽移动与缩放效果
2020/08/24 Javascript
详解vite+ts快速搭建vue3项目以及介绍相关特性
2021/02/25 Vue.js
python友情链接检查方法
2015/07/08 Python
python psutil库安装教程
2018/03/19 Python
Python 判断奇数偶数的方法
2018/12/20 Python
css图标制作教程制作云图标
2014/01/19 HTML / CSS
2013年办公室秘书的个人自我鉴定
2013/10/24 职场文书
职业生涯规划书范文
2014/03/10 职场文书
车间安全生产标语
2014/06/06 职场文书
辞职书格式样本
2015/02/26 职场文书
2015年全国科普日活动总结
2015/03/23 职场文书
仓库管理制度范本
2015/08/04 职场文书
创业计划书之面包店
2019/09/12 职场文书
如何用Laravel包含你自己的帮助函数
2021/05/27 PHP
关于python中readlines函数的参数hint的相关知识总结
2021/06/24 Python