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 EasyUI中对表格进行编辑的实现代码
Jun 10 Javascript
JS 各种网页尺寸判断实例方法
Apr 18 Javascript
js操作checkbox遇到的问题解决
Jun 29 Javascript
JavaScript弹出窗口方法汇总
Aug 12 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
Jan 05 Javascript
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
Apr 22 Javascript
angularJS模态框$modal实例代码
May 27 Javascript
Vue实现左右菜单联动实现代码
Aug 12 Javascript
开发一个Parcel-vue脚手架工具(详细步骤)
Sep 22 Javascript
微信小程序常用赋值方法小结
Apr 30 Javascript
Vue插件之滑动验证码
Sep 21 Javascript
基于JQuery和DWR实现异步数据传递
Oct 16 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
PHP 5.0 Pear安装方法
2006/12/06 PHP
解决中英文字符串长度问题函数
2007/01/16 PHP
php猴子选大王问题解决方法
2015/05/12 PHP
laravel通用化的CURD的实现
2019/12/13 PHP
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
实现点击列表弹出列表索引的两种方式
2013/03/08 Javascript
JavaScript跨域方法汇总
2014/10/16 Javascript
js控制div弹出层实现方法
2015/05/11 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
只要1K 纯JS脚本送你一朵3D红色玫瑰
2016/08/09 Javascript
bootstrap 表单验证使用方法
2017/01/11 Javascript
基于input动态模糊查询的实现方法
2017/12/12 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
Nuxt配合Node在实际生产中的应用详解
2018/08/07 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
微信小程序实现蒙版弹出窗功能
2019/09/17 Javascript
js脚本中执行java后台代码方法解析
2019/10/11 Javascript
JavaScript字符串转数字的简单实现方法
2020/11/27 Javascript
如何在 Vue 表单中处理图片
2021/01/26 Vue.js
详解js创建对象的几种方式和对象方法
2021/03/01 Javascript
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
Python中turtle作图示例
2017/11/15 Python
django执行原始查询sql,并返回Dict字典例子
2020/04/01 Python
如何利用Python识别图片中的文字
2020/05/31 Python
html5 canvas的绘制文本自动换行的示例代码
2018/09/17 HTML / CSS
实习护理工作自我评价
2013/09/25 职场文书
外语专业毕业生个人的自荐信
2013/11/19 职场文书
医院总经理职责
2013/12/26 职场文书
个人简历中的自我评价怎么写
2014/01/26 职场文书
庆祝教师节演讲稿
2014/09/03 职场文书
员工2014年度工作总结
2014/12/09 职场文书
2014矛盾纠纷排查调处工作总结
2014/12/09 职场文书
开除通知书范本
2015/04/25 职场文书
2015领导干部廉洁自律工作总结
2015/07/23 职场文书
2015年防灾减灾工作总结
2015/07/24 职场文书
Python如何把不同类型数据的json序列化
2021/04/30 Python