JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)


Posted in Javascript onNovember 25, 2013

HTML元素,属性已经十分丰富了。但是,在某些场合下,也会显得捉襟见肘,这时候自定义属性就发挥了十分关键的作用。

Html元素的自定义属性,使用起来,十分方便,例如:

<input type=”button” value=”Click Me, Baby!” />

假设我们现在需要限制,这个按钮,只能点击2次,然后就失效了。

通常的实现方式,是可以利用全局变量的形式来记录点击次数,但我们这里用自定义属性来实现这个功能,展示一下自定义属性的优势;我们对上面的button做一下改造:

<input type=”button” value=”Click Me, Baby!” clickCount=”0” />

可以看到,我为这个button 增加了一个自定义属性 clickCount, 并将初始值设为 0;下面我们来写实现功能的js代码:

1. 给 button 增加click事件的处理

<input type=”button” value=”Click Me, Baby!” clickCount=”0”  onclick=”customAttributeDemo(this);" />

2. 我们来写 customAttributeDemo(obj) 这个函数

对于IE来讲,使用自定义属性非常简单,因为IE自动将自定义属性解析到了DOM中,和标准属性没有任何区别,IE下的版本:

function customAttributeDemo(obj)
{
    if (obj.clickCount === '0')
    {
        obj.clickCount = '1';
    }
    else
    {
        obj.disabled = true;
    }
}

上面的代码在 FireFox 下将失效,因为FireFox对自定义属性的使用,限制更高,只能使用 attributes[] 集合来访问,FireFox 下的代码:
function customAttributeDemo(obj)
{
    if (obj.attributes['clickCount'].nodeValue === '0')
    {
        obj.attributes['clickCount'].nodeValue = '1';
    }
    else
    {
       obj.disabled = true;
    }
}

上面的代码,也适用于IE,所以,这个代码,就是具有兼容性的代码了。

感谢网友的交流,他给出了 getAttribute 和 setAttribute 的方法:

function customAttributeDemo(obj)
{
    if (obj.getAttribute('clickCount') === '0')
        obj.setAttribute('clickCount', '1');
    else
        obj.disabled = true;
}
Javascript 相关文章推荐
jquery 上下滚动广告
Jun 17 Javascript
JavaScript中获取未知对象属性的代码
Apr 27 Javascript
关于Javascript与iframe的那些事儿
Jul 04 Javascript
js document.write()使用介绍
Feb 21 Javascript
教你如何使用node.js制作代理服务器
Nov 26 Javascript
基于jquery和svg实现超炫酷的动画特效
Dec 09 Javascript
js判断checkbox是否选中个数的方法(超简单)
Aug 19 Javascript
ionic环境配置及问题详解
Jun 27 Javascript
在Vue组件中获取全局的点击事件方法
Sep 06 Javascript
vue element动态渲染、移除表单并添加验证的实现
Jan 16 Javascript
vscode中eslint插件的配置(prettier配置无效)
Sep 10 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
Oct 10 jQuery
几种设置表单元素中文本输入框不可编辑的方法总结
Nov 25 #Javascript
js动态添加删除,后台取数据(示例代码)
Nov 25 #Javascript
javascript新建标签,判断键盘输入,以及判断焦点(示例代码)
Nov 25 #Javascript
jQuery中获取checkbox选中项等操作及注意事项
Nov 24 #Javascript
javascript 弹出的窗口返回值给父窗口具体实现
Nov 23 #Javascript
javascript 实现字符串反转的三种方法
Nov 23 #Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
Nov 23 #Javascript
You might like
打造计数器DIY三步曲(中)
2006/10/09 PHP
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
PHP 5.3.1 安装包 VC9 VC6不同版本的区别是什么
2010/07/04 PHP
PHP往XML中添加节点的方法
2015/03/12 PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
2016/03/18 PHP
IE与firefox下Dhtml的一些区别小结
2009/12/02 Javascript
jQuery中bind与live的用法及区别小结
2014/01/27 Javascript
javascript实现时间格式输出FormatDate函数
2015/01/13 Javascript
jQuery实现hover合成事件的方法
2015/08/06 Javascript
解决JS无法调用Controller问题的方法
2015/12/31 Javascript
jquery easyui datagrid实现增加,修改,删除方法总结
2016/05/25 Javascript
javascript滚轮控制模拟滚动条
2016/10/19 Javascript
Javascript实现数组中的元素上下移动
2017/04/28 Javascript
详解vue表单——小白速看
2018/04/08 Javascript
详解使用mpvue开发github小程序总结
2018/07/25 Javascript
vue2中引用及使用 better-scroll的方法详解
2018/11/15 Javascript
JS字典Dictionary类定义与用法示例
2019/02/01 Javascript
微信小程序mpvue点击按钮获取button值的方法
2019/05/29 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
2019/07/04 Javascript
简单了解JavaScript sort方法
2019/11/25 Javascript
javascript用defineProperty实现简单的双向绑定方法
2020/04/03 Javascript
[01:19:23]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第二场
2018/04/06 DOTA
简化Python的Django框架代码的一些示例
2015/04/20 Python
django_orm查询性能优化方法
2018/08/20 Python
python构建基础的爬虫教学
2018/12/23 Python
dpn网络的pytorch实现方式
2020/01/14 Python
Python 获取异常(Exception)信息的几种方法
2020/12/29 Python
20佳惊艳的HTML5应用程序示例分享
2011/05/03 HTML / CSS
美国高端寝具品牌:Coyuchi
2017/02/08 全球购物
Book Depository美国:全球领先的专业网上书店之一
2019/08/14 全球购物
外贸英语毕业生自荐信
2013/11/14 职场文书
11月红领巾广播稿
2014/01/17 职场文书
平安工地汇报材料
2014/08/19 职场文书
荆州古城导游词
2015/02/06 职场文书
实习报告范文之电话客服岗位
2019/07/26 职场文书
如何把新闻人物写得立体、鲜活?
2019/08/14 职场文书