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 相关文章推荐
js中数组(Array)的排序(sort)注意事项说明
Jan 24 Javascript
深入理解javascript变量声明
Nov 20 Javascript
jQuery满意度星级评价插件特效代码分享
Aug 19 Javascript
js实现TAB切换对应不同颜色的代码
Aug 31 Javascript
JS判断是否长按某一键的方法
Mar 02 Javascript
用JavaScript获取页面文档内容的实现代码
Jun 10 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
Nov 23 Javascript
Bootstrap基本组件学习笔记之按钮组(8)
Dec 07 Javascript
浅谈react.js 之 批量添加与删除功能
Apr 17 Javascript
Angular 4依赖注入学习教程之ClassProvider的使用(三)
Jun 04 Javascript
Vue 实现树形视图数据功能
May 07 Javascript
Vue cli构建及项目打包以及出现的问题解决
Aug 27 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
thinkphp3.0 模板中函数的使用
2012/11/13 PHP
php格式化电话号码的方法
2015/04/24 PHP
WHOOPS PHP调试库的使用
2017/09/29 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
Prototype源码浅析 Number部分
2012/01/16 Javascript
jQuery动态添加、删除元素的方法
2014/01/09 Javascript
在jquery boxy中添加百度地图坐标拾取注意流程
2014/04/03 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
jQuery获取iframe的document对象的方法
2014/10/10 Javascript
浅谈javascript面向对象程序设计
2015/01/21 Javascript
你有必要知道的25个JavaScript面试题
2015/12/29 Javascript
TypeOf这些知识点你了解吗
2016/02/21 Javascript
Vue.js每天必学之内部响应式原理探究
2016/09/07 Javascript
深入理解JavaScript定时机制
2016/10/27 Javascript
vue.js指令v-model实现方法
2016/12/05 Javascript
JS实现页面打印(整体、局部)
2017/08/18 Javascript
Vue中的scoped实现原理及穿透方法
2018/05/15 Javascript
基于elementUI实现图片预览组件的示例代码
2019/03/31 Javascript
从0到1搭建Element的后台框架的方法步骤
2019/04/10 Javascript
VsCode与Node.js知识点详解
2019/09/05 Javascript
layui复选框限制选择个数的方法
2019/09/18 Javascript
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
Python数组条件过滤filter函数使用示例
2014/07/22 Python
Python中使用pprint函数进行格式化输出的教程
2015/04/07 Python
Python的时间模块datetime详解
2017/04/17 Python
python在文本开头插入一行的实例
2018/05/02 Python
Python面向对象编程基础实例分析
2020/01/17 Python
Python图像读写方法对比
2020/11/16 Python
从一次项目重构说起CSS3自定义变量在项目的使用方法
2021/03/01 HTML / CSS
营销与策划个人求职信
2013/09/22 职场文书
体育教师求职信
2014/06/30 职场文书
安全责任书模板
2014/07/22 职场文书
2016五四青年节活动总结范文
2016/04/06 职场文书
导游词之长城八达岭
2019/09/24 职场文书
ubuntu安装jupyter并设置远程访问的实现
2022/03/31 Python
GTX1660显卡搭配显示器推荐
2022/04/19 数码科技