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 相关文章推荐
限制只能输入数字的实现代码
May 16 Javascript
Bootstrap Table使用方法详解
Aug 01 Javascript
Javascript 调用 ActionScript 的简单方法
Sep 22 Javascript
js实现带简单弹性运动的导航条
Feb 22 Javascript
angular实现spa单页面应用实例
Jul 10 Javascript
解决ie img标签内存泄漏的问题
Oct 13 Javascript
vue框架搭建之axios使用教程
Jul 11 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
Oct 08 Javascript
使用Vue实现简单计算器
Feb 25 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
Aug 03 Javascript
你不知道的SpringBoot与Vue部署解决方案
Nov 09 Javascript
Vue监视数据的原理详解
Feb 24 Vue.js
几种设置表单元素中文本输入框不可编辑的方法总结
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
收集的DedeCMS一些使用经验
2007/03/17 PHP
谈谈关于php的优点与缺点
2013/04/11 PHP
Zend的MVC机制使用分析(一)
2013/05/02 PHP
PHP error_log()将错误信息写入一个文件(定义和用法)
2013/10/25 PHP
PHP批量上传图片的具体实现方法介绍.
2014/02/26 PHP
Win7 64位系统下PHP连接Oracle数据库
2014/08/20 PHP
PHP检测字符串是否为UTF8编码的常用方法
2014/11/21 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
yii框架结合charjs实现统计30天数据的方法
2020/04/04 PHP
JavaScript加强之自定义event事件
2013/09/21 Javascript
解析Javascript小括号“()”的多义性
2013/12/03 Javascript
使用AngularJS实现可伸缩的页面切换的方法
2015/06/19 Javascript
TypeScript入门-接口
2017/03/30 Javascript
node.js的exports、module.exports与ES6的export、export default深入详解
2017/10/26 Javascript
帝国cms首页列表页实现点赞功能
2017/10/30 Javascript
jQuery实现标签子元素的添加和赋值方法
2018/02/24 jQuery
浅析Vue.js中v-bind v-model的使用和区别
2018/12/04 Javascript
js根据需要计算数组中重复出现某个元素的个数
2019/01/18 Javascript
微信小程序websocket实现即时聊天功能
2019/05/21 Javascript
[46:14]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第一场 12.11
2020/12/16 DOTA
[01:16:13]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第一场 2月22日
2021/03/11 DOTA
python模块restful使用方法实例
2013/12/10 Python
优化Python代码使其加快作用域内的查找
2015/03/30 Python
python简单实现计算过期时间的方法
2015/06/09 Python
python实现数独算法实例
2015/06/09 Python
Python实现字符串的逆序 C++字符串逆序算法
2020/05/28 Python
python pandas库的安装和创建
2019/01/10 Python
python+pyqt5实现24点小游戏
2019/01/24 Python
python五子棋游戏的设计与实现
2019/06/18 Python
python实现文件的分割与合并
2019/08/29 Python
Python文件路径名的操作方法
2019/10/30 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
HTML5实现一个能够移动的小坦克示例代码
2013/09/02 HTML / CSS
iframe与window.onload如何使用详解
2020/05/07 HTML / CSS
大学生演讲稿范文
2014/01/11 职场文书
MySQL EXPLAIN输出列的详细解释
2021/05/12 MySQL