浅谈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 相关文章推荐
Jquery仿IGoogle实现可拖动窗口示例代码
Aug 22 Javascript
本人自用的global.js库源码分享
Feb 28 Javascript
浅谈javascript中new操作符的原理
Jun 07 Javascript
用headjs来管理和加载js 提高网站加载速度
Nov 29 Javascript
基于vue实现分页/翻页组件paginator示例
Mar 09 Javascript
jQuery extend()详解及简单实例
May 06 jQuery
es6学习笔记之Async函数基本教程
May 11 Javascript
详解react-router4 异步加载路由两种方法
Sep 12 Javascript
浅谈react-native热更新react-native-pushy集成遇到的问题
Sep 30 Javascript
jQuery插件jsonview展示json数据
May 26 jQuery
vue路由的配置和页面切换详解
Sep 09 Javascript
React Native登录之指纹登录篇的示例代码
Nov 03 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函数
2010/02/16 PHP
PHP定时执行计划任务的多种方法小结
2011/12/19 PHP
支持生僻字且自动识别utf-8编码的php汉字转拼音类
2014/06/27 PHP
PHP获取ip对应地区和使用网络类型的方法
2015/03/11 PHP
php实现插入排序
2015/03/29 PHP
基于jquery的获取浏览器窗口大小的代码
2011/03/28 Javascript
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
jQuery 图片切换插件(代码比较少)
2012/05/07 Javascript
js中日期的加减法
2015/05/06 Javascript
Bootstrap嵌入jqGrid,使你的table牛逼起来
2016/05/05 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
轻松理解Javascript变量的相关问题
2017/01/20 Javascript
Vue中添加过渡效果的方法
2017/03/16 Javascript
详解用node.js实现简单的反向代理
2017/06/26 Javascript
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
JavaScript函数Call、Apply原理实例解析
2020/02/17 Javascript
python 3.6 tkinter+urllib+json实现火车车次信息查询功能
2017/12/20 Python
用Python3创建httpServer的简单方法
2018/06/04 Python
解决python 无法加载downsample模型的问题
2018/10/25 Python
python url 参数修改方法
2018/12/26 Python
Python装饰器语法糖
2019/01/02 Python
python tkinter基本属性详解
2019/09/16 Python
python定时任务 sched模块用法实例
2019/11/04 Python
Python paramiko 模块浅谈与SSH主要功能模拟解析
2020/02/29 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
Wiggle中国:英国骑行、跑步、游泳 & 铁三运动装备专卖网店
2016/08/02 全球购物
美国高级音响品牌:Master&Dynamic
2018/07/05 全球购物
写一个在SQL Server创建表的SQL语句
2012/03/10 面试题
斯福泰克软件测试面试题
2015/02/16 面试题
食品厂厂长岗位职责
2014/01/30 职场文书
优秀毕业生事迹材料
2014/02/12 职场文书
七匹狼男装广告词
2014/03/21 职场文书
国企干部对照检查材料
2014/08/22 职场文书
离婚协议书怎么写
2014/09/12 职场文书
OpenCV-Python实现图像平滑处理操作
2021/06/08 Python