浅谈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 相关文章推荐
实现动画效果核心方式的js代码
Sep 27 Javascript
点击页面其它地方隐藏该div的两种思路
Nov 18 Javascript
Jquery结合HTML5实现文件上传
Jun 25 Javascript
JS实现自动阅读单词(有道单词本添加功能)
Nov 14 Javascript
详解jQuery简单的表格应用
Dec 16 Javascript
Bootstrap按钮组简单实现代码
Mar 06 Javascript
HTML中使背景图片自适应浏览器大小实例详解
Apr 06 Javascript
JS获取子、父、兄节点方法小结
Aug 14 Javascript
基于React Native 0.52实现轮播图效果
Aug 25 Javascript
基于Proxy的小程序状态管理实现
Jun 14 Javascript
vue使用微信JS-SDK实现分享功能
Aug 23 Javascript
vue中使用[provide/inject]实现页面reload的方法
Sep 30 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代码给图片加水印
2015/07/01 PHP
PHP自定义多进制的方法
2016/11/03 PHP
YII分模块加载路由的实现方法
2018/10/01 PHP
imagettftext() 失效,不起作用
2021/03/09 PHP
Extjs学习笔记之九 数据模型(上)
2010/01/11 Javascript
javascript两段代码,两个小技巧
2010/02/04 Javascript
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
批量实现面向对象的实例代码
2013/07/01 Javascript
jquery删除指定的html标签并保留标签内文本内容的方法
2014/04/02 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
2014/08/20 Javascript
2014年最火的Node.JS后端框架推荐
2014/10/27 Javascript
node.js中的buffer.fill方法使用说明
2014/12/14 Javascript
jquery.cookie.js使用指南
2015/01/05 Javascript
vue.js 实现图片本地预览 裁剪 压缩 上传功能
2018/03/01 Javascript
详解如何在Vue里建立长按指令
2018/08/20 Javascript
jquery+php后台实现省市区联动功能示例
2019/05/23 jQuery
解决vue页面渲染但dom没渲染的操作
2020/07/27 Javascript
Python NumPy库安装使用笔记
2015/05/18 Python
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
Python中的__slots__示例详解
2017/07/06 Python
python递归打印某个目录的内容(实例讲解)
2017/08/30 Python
python多维数组切片方法
2018/04/13 Python
Django中的文件的上传的几种方式
2018/07/23 Python
python代码 输入数字使其反向输出的方法
2018/12/22 Python
python基础知识(一)变量与简单数据类型详解
2019/04/17 Python
Python3操作Excel文件(读写)的简单实例
2019/09/02 Python
详解使用django-mama-cas快速搭建CAS服务的实现
2019/10/30 Python
eDreams巴西:廉价机票,酒店优惠和度假套餐
2017/04/14 全球购物
草莓网化妆品澳大利亚站:Strawberrynet AU
2017/12/18 全球购物
anello泰国官方网站:日本流行包包品牌
2019/08/08 全球购物
大学生军训自我评价分享
2013/11/09 职场文书
个人职业生涯规划书1500字
2013/12/31 职场文书
党的群众路线教育实践活动对照检查材料思想汇报
2014/09/19 职场文书
公务员个人考察材料
2014/12/23 职场文书
Python代码,能玩30多款童年游戏!这些有几个是你玩过的
2021/04/27 Python
python人工智能human learn绘图可创建机器学习模型
2021/11/23 Python