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 document.createDocumentFragment()
Apr 04 Javascript
JavaScript是否可实现多线程  深入理解JavaScript定时机制
Dec 22 Javascript
js跑马灯代码(自写)
Apr 17 Javascript
JQuery对表单元素的基本操作使用总结
Jul 18 Javascript
Javascript基础教程之函数对象和属性
Jan 18 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
Sep 24 Javascript
JS生成和下载二维码的代码
Dec 07 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
Feb 28 Javascript
VUE实现表单元素双向绑定(总结)
Aug 08 Javascript
使用vue 国际化i18n 实现多实现语言切换功能
Oct 11 Javascript
微信小程序日历组件使用方法详解
Dec 29 Javascript
layui radio点击事件实现input显示和隐藏的例子
Sep 02 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数组应用之比较两个时间的相减排序
2008/08/18 PHP
如何用php生成扭曲及旋转的验证码图片
2013/06/07 PHP
php多维数组去掉重复值示例分享
2014/03/02 PHP
深入浅析php中sprintf与printf函数的用法及区别
2016/01/08 PHP
Nigma vs Alliance BO5 第四场2.14
2021/03/10 DOTA
tbody元素支持嵌套的注意方法
2007/03/24 Javascript
推荐自用 Javascript 缩图函数 (onDOMLoaded)……
2007/10/23 Javascript
js将json格式内容转换成对象的方法
2013/11/01 Javascript
jQuery文件上传插件Uploadify使用指南
2014/06/05 Javascript
JS回调函数的应用简单实例
2014/09/17 Javascript
JavaScript实现动画打开半透明提示层的方法
2015/04/21 Javascript
AngularJS 避繁就简的路由
2016/07/01 Javascript
JS多物体实现缓冲运动效果示例
2016/12/20 Javascript
JavaScript数组方法的错误使用例子
2018/09/13 Javascript
webpack-mvc 传统多页面组件化开发详解
2019/05/07 Javascript
vue-router源码之history类的浅析
2019/05/21 Javascript
微信小程序scroll-view锚点链接滚动跳转功能
2019/12/12 Javascript
解决ant design vue 表格a-table二次封装,slots渲染的问题
2020/10/28 Javascript
记录一次websocket封装的过程
2020/11/23 Javascript
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
[02:22:36]《加油!DOTA》总决赛
2014/09/19 DOTA
零基础写python爬虫之使用Scrapy框架编写爬虫
2014/11/07 Python
python中使用%与.format格式化文本方法解析
2017/12/27 Python
Python字符串逆序输出的实例讲解
2019/02/16 Python
python自动结束mysql慢查询会话的实例代码
2019/10/27 Python
Python退出时强制运行一段代码的实现方法
2020/04/29 Python
Django修改app名称和数据表迁移方案实现
2020/09/17 Python
python实现PolynomialFeatures多项式的方法
2021/01/06 Python
党员创先争优承诺书
2014/03/26 职场文书
工厂车间标语
2014/06/19 职场文书
政府个人对照检查材料思想汇报
2014/10/08 职场文书
设立有限责任公司出资协议书
2014/11/01 职场文书
材料采购员岗位职责
2015/04/03 职场文书
党员转正党支部意见
2015/06/02 职场文书
父亲节感言
2015/08/03 职场文书
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
2021/11/11 Python