浅谈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 相关文章推荐
JavaScript CSS修改学习第二章 样式
Feb 19 Javascript
IE6下js通过css隐藏select的一个bug
Aug 16 Javascript
jquery动态添加删除div 具体实现
Jul 20 Javascript
png在IE6 下无法透明的解决方法汇总
May 21 Javascript
jQuery实现form表单基于ajax无刷新提交方法详解
Dec 08 Javascript
JavaScript与ActionScript3两者的同性与差异性
Sep 22 Javascript
使用JS批量选中功能实现更改数据库中的status状态值(批量展示)
Nov 22 Javascript
微信小程序request出现400的问题解决办法
May 23 Javascript
微信小程序动态显示项目倒计时效果
Jun 13 Javascript
使用JS判断页面是首次被加载还是刷新
May 26 Javascript
JS实现按比例缩小图片宽高
Aug 24 Javascript
JavaScript实现前端网页版倒计时
Mar 24 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
php ignore_user_abort与register_shutdown_function 使用方法
2009/06/14 PHP
解析php通过cookies获取远程网页的指定代码
2013/06/25 PHP
php实现SAE上使用storage上传与下载文件的方法
2015/06/29 PHP
PHP面试题之文件目录操作
2015/10/15 PHP
PHP类的声明与实例化及构造方法与析构方法详解
2016/01/26 PHP
laravel实现于语言包的完美切换方法
2019/09/29 PHP
js substr、substring和slice使用说明小记
2011/09/15 Javascript
html中的input标签的checked属性jquery判断代码
2012/09/19 Javascript
关于jquery的多个选择器的使用示例
2013/10/18 Javascript
jquery中插件实现自动添加用户的具体代码
2013/11/15 Javascript
js AppendChild与insertBefore用法详细对比
2013/12/16 Javascript
jquery自定义函数的多种方法
2014/01/09 Javascript
网页广告中JS代码的信息监听示例
2014/04/02 Javascript
jQuery使用$.ajax进行异步刷新的方法(附demo下载)
2015/12/04 Javascript
Ext JS动态加载JavaScript创建窗体的方法
2016/06/23 Javascript
node.js实现快速截图
2016/08/27 Javascript
javascript中replace使用方法总结
2017/03/01 Javascript
Angularjs2不同组件间的通信实例代码
2017/05/06 Javascript
jQuery实现简单全选框
2020/09/13 jQuery
JS实现小米轮播图
2020/09/21 Javascript
JS如何生成动态列表
2020/09/22 Javascript
[02:36]DOTA2上海特锦赛 回忆电竞生涯的重要瞬间
2016/03/25 DOTA
Python生成随机MAC地址
2015/03/10 Python
在Python中操作字典之fromkeys()方法的使用
2015/05/21 Python
深入理解python函数递归和生成器
2016/06/06 Python
Java及python正则表达式详解
2017/12/27 Python
python定位xpath 节点位置的方法
2019/08/27 Python
opencv-python 提取sift特征并匹配的实例
2019/12/09 Python
你应该知道的Python3.6、3.7、3.8新特性小结
2020/05/12 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
机房搬迁方案
2014/05/01 职场文书
拆迁委托协议书
2014/09/15 职场文书
借款协议书
2014/09/16 职场文书
2015年学生会主席工作总结
2015/04/21 职场文书
Django使用echarts进行可视化展示的实践
2021/06/10 Python
python机器学习实现oneR算法(以鸢尾data为例)
2022/03/03 Python