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 应用代码 方便的排序功能
Feb 06 Javascript
jquery下利用jsonp跨域访问实现方法
Jul 29 Javascript
js注意img图片的onerror事件的分析
Jan 01 Javascript
js获取上传文件大小示例代码
Apr 10 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
Nov 10 Javascript
前端js中的事件循环eventloop机制详解
May 15 Javascript
vue 移动端注入骨架屏的配置方法
Jun 25 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
Aug 01 Javascript
jquery 插件重新绑定的处理方法分析
Nov 23 jQuery
JS实现数据动态渲染的竖向步骤条
Jun 24 Javascript
vue实现单一筛选、删除筛选条件
Oct 26 Javascript
Vue使用Proxy代理后仍无法生效的解决
Nov 13 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
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常用代码大全(新手入门必备)
2010/06/29 PHP
ajax实现无刷新分页(php)
2010/07/18 PHP
php实现的zip文件内容比较类
2014/09/24 PHP
php出现web系统多域名登录失败的解决方法
2014/09/30 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
2014/12/16 PHP
纯Javascript实现Windows 8 Metro风格实现
2013/10/15 Javascript
利用原生JavaScript获取元素样式只是获取而已
2014/10/08 Javascript
Javascript函数式编程语言
2015/10/11 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
2016/12/02 Javascript
微信小程序 动态绑定事件并实现事件修改样式
2017/04/13 Javascript
BootstrapTable加载按钮功能实例代码详解
2017/09/22 Javascript
深入理解Vue 单向数据流的原理
2017/11/09 Javascript
jQuery实现表格隔行换色
2018/09/01 jQuery
创建nuxt.js项目流程图解
2020/03/13 Javascript
js利用拖放实现添加删除
2020/08/27 Javascript
Python 数据结构之旋转链表
2017/02/25 Python
Python之Web框架Django项目搭建全过程
2017/05/02 Python
基于Python对象引用、可变性和垃圾回收详解
2017/08/21 Python
Python内置函数 next的具体使用方法
2017/11/24 Python
Django admin美化插件suit使用示例
2017/12/12 Python
详解Python之unittest单元测试代码
2018/01/24 Python
Python3实现的Mysql数据库操作封装类
2018/06/06 Python
Tensorflow中的dropout的使用方法
2020/03/13 Python
Python是什么 Python的用处
2020/05/26 Python
Python gevent协程切换实现详解
2020/09/14 Python
前后端结合实现amazeUI分页效果
2020/08/21 HTML / CSS
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
J2EE中的容器都包括哪些
2013/08/21 面试题
初中三好学生事迹材料
2014/01/13 职场文书
家长会主持词
2014/03/26 职场文书
公务员保密承诺书
2014/03/27 职场文书
环保倡议书100字
2014/05/15 职场文书
档案信息化建设方案
2014/05/16 职场文书
三好学生个人总结
2015/02/15 职场文书
8个JS的reduce使用实例和reduce操作方式
2021/10/05 Javascript
MySQL面试题讲解之如何设置Hash索引
2021/11/01 MySQL