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 相关文章推荐
JavaScript入门教程(10) 认识其他对象
Jan 31 Javascript
js cookies 常见网页木马挂马代码 24小时只加载一次
Apr 13 Javascript
JS Map 和 List 的简单实现代码
Jul 08 Javascript
AngularJS入门教程之REST和定制服务详解
Aug 19 Javascript
浅谈gulp创建完整的项目流程
Dec 20 Javascript
Vue.js递归组件构建树形菜单
Dec 24 Javascript
vue.js 实现点击展开收起动画效果
Jul 07 Javascript
Javascript之高级数组API的使用实例
Mar 08 Javascript
详解key在Vue列表渲染时究竟起到了什么作用
Apr 20 Javascript
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
Jun 14 Javascript
原生JavaScript实现拖动校验功能
Sep 29 Javascript
JavaScript实现轮播图效果
Oct 30 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
「OVERLORD」动画重要删减!雅儿贝德的背叛?至尊猎杀队结成
2020/04/09 日漫
高性能PHP框架Symfony2经典入门教程
2014/07/08 PHP
网页自动刷新,不产生嗒嗒声的一个解决方法
2007/03/27 Javascript
javascript下查找父节点的简单方法
2007/08/13 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
2013/12/11 Javascript
js传中文参数controller里获取参数乱码问题解决方法
2014/01/03 Javascript
基于jQuery仿淘宝产品图片放大镜特效
2020/10/19 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
React-Native做一个文本输入框组件的实现代码
2017/08/10 Javascript
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
浅谈React Native Flexbox布局(小结)
2018/01/08 Javascript
Python的Flask框架中配置多个子域名的方法讲解
2016/06/07 Python
python的exec、eval使用分析
2017/12/11 Python
Python实现投影法分割图像示例(一)
2020/01/17 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
python小程序之4名牌手洗牌发牌问题解析
2020/05/15 Python
Python实现自动签到脚本的示例代码
2020/08/19 Python
Python pip 常用命令汇总
2020/10/19 Python
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
自考生毕业自我鉴定
2013/10/10 职场文书
大专毕业生自我评价分享
2013/11/10 职场文书
应届生自荐信
2014/06/30 职场文书
推广活动策划方案
2014/08/23 职场文书
中学生检讨书范文
2014/11/03 职场文书
审美与表现自我评价
2015/03/09 职场文书
海上钢琴师的观后感
2015/06/11 职场文书
女方家长婚礼答谢词
2015/09/29 职场文书
2016班级元旦联欢会开幕词
2016/03/04 职场文书
2016年党员公开承诺书范文
2016/03/24 职场文书
Python机器学习之KNN近邻算法
2021/05/14 Python
vue+elementui 实现新增和修改共用一个弹框的完整代码
2021/06/08 Vue.js
国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程
2021/10/05 Javascript
tomcat正常启动但网页却无法访问的几种解决方法
2022/05/06 Servers
Win11运行cmd提示“请求的操作需要提升”的两种解决方法
2022/07/07 数码科技
浅谈为什么我的 z-index 又不生效了
2022/07/15 HTML / CSS