浅谈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 相关文章推荐
鼠标移到导航当前位置的LI变色处于选中状态
Aug 23 Javascript
基于javascript滚动图片具体实现
Nov 18 Javascript
js 通过html()及text()方法获取并设置p标签的显示值
May 14 Javascript
js父页面与子页面不同时显示的方法
Oct 16 Javascript
JS中数组重排序方法
Nov 11 Javascript
原生js实现节日时间倒计时功能
Jan 18 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
Mar 13 Javascript
基于JavaScript实现瀑布流效果
Mar 29 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
Sep 16 Javascript
layer实现关闭弹出层刷新父界面功能详解
Nov 15 Javascript
如何实现小程序tab栏下划线动画效果
May 18 Javascript
vue element-ui读取pdf文件的方法
Nov 26 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 应用程序的安全 -- 不能违反的四条安全规则
2006/11/26 PHP
PHP两种去掉数组重复值的方法比较
2014/06/19 PHP
C/S和B/S两种架构区别与优缺点分析
2014/10/23 PHP
PHP输出一个等腰三角形的方法
2015/05/12 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
2017/08/04 PHP
fckeditor 获取文本框值的实现代码
2009/02/09 Javascript
基于jQuery的Tab选项框效果代码(插件)
2011/03/01 Javascript
批量实现面向对象的实例代码
2013/07/01 Javascript
IE6-8中Date不支持toISOString的修复方法
2014/05/04 Javascript
Javascript判断文件是否存在(客户端/服务器端)
2014/09/16 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
60行js代码实现俄罗斯方块
2015/03/31 Javascript
JavaScript采用递归算法计算阶乘实例
2015/08/04 Javascript
jQuery实现伪分页的方法分享
2016/02/17 Javascript
javascript解决小数的加减乘除精度丢失的方案
2016/05/31 Javascript
JavaScript基础重点(必看)
2016/07/09 Javascript
html+js+highcharts绘制圆饼图表的简单实例
2016/08/04 Javascript
BootStrap轮播HTML代码(推荐)
2016/12/10 Javascript
详谈js中标准for循环与foreach(for in)的区别
2017/11/02 Javascript
angularjs实现table增加tr的方法
2018/02/27 Javascript
使用react render props实现倒计时的示例代码
2018/12/06 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
简单介绍Python中的try和finally和with方法
2015/05/05 Python
Python中的anydbm模版和shelve模版使用指南
2015/07/09 Python
python安装cx_Oracle模块常见问题与解决方法
2017/02/21 Python
python+matplotlib实现鼠标移动三角形高亮及索引显示
2018/01/15 Python
python实现随机梯度下降法
2020/03/24 Python
python实现简单名片管理系统
2018/11/30 Python
Python3非对称加密算法RSA实例详解
2018/12/06 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
2019/06/08 Python
关于django 1.10 CSRF验证失败的解决方法
2019/08/31 Python
南京迈特望C/C++面试题
2012/07/09 面试题
下面这个程序执行后会有什么错误或者效果
2014/11/03 面试题
党支部换届选举方案
2014/05/08 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书
《艾尔登法环》发布最新「战技」宣传片
2022/04/03 其他游戏