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静态的url如何传递
May 03 Javascript
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
Nov 24 Javascript
js获取提交的字符串的字节数
Feb 09 Javascript
jquery last-child 列表最后一项的样式
Jan 22 Javascript
jquery弹出框的用法示例(2)
Aug 26 Javascript
JavaScript获取文本框内选中文本的方法
Feb 20 Javascript
纯javascript响应式树形菜单效果
Nov 10 Javascript
JavaScript中的prototype原型学习指南
May 09 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
Apr 24 Javascript
vee-validate vue 2.0自定义表单验证的实例
Aug 28 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
Jan 23 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
Apr 23 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
基于数据库的在线人数,日访问量等统计
2006/10/09 PHP
php 页面执行时间计算代码
2008/12/04 PHP
PHP 最大运行时间 max_execution_time修改方法
2010/03/08 PHP
php数字运算验证码的实现代码
2015/07/30 PHP
Symfony2安装第三方Bundles实例详解
2016/02/04 PHP
PHP 接入支付宝即时到账功能
2016/09/18 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
JavaScript 创建对象和构造类实现代码
2009/07/30 Javascript
jQuery阻止冒泡和HTML默认操作
2010/11/17 Javascript
JS实现点击下载的小例子
2013/07/10 Javascript
jQuery判断复选框是否勾选的原理及示例
2014/05/21 Javascript
基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
2015/09/06 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
2015/12/24 Javascript
js中class的点击事件没有效果的解决方法
2016/10/13 Javascript
js获取隐藏元素的宽高
2017/02/24 Javascript
JavaScript中使用Async实现异步控制
2017/08/15 Javascript
深入理解Vue2.x的虚拟DOM diff原理
2017/09/27 Javascript
Element-UI中Upload上传文件前端缓存处理示例
2019/02/21 Javascript
js的继承方法小结(prototype、call、apply)(推荐)
2019/04/17 Javascript
Node 模块原理与用法详解
2020/05/13 Javascript
Python实现的一个自动售饮料程序代码分享
2014/08/25 Python
python操作cfg配置文件方式
2019/12/22 Python
python 窃取摄像头照片的实现示例
2021/01/08 Python
一文读懂python Scrapy爬虫框架
2021/02/24 Python
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
英国时尚泳装品牌:Maru Swimwear
2019/10/06 全球购物
C语言基础笔试题
2013/04/27 面试题
课前三分钟演讲稿
2014/04/24 职场文书
开票员岗位职责
2015/02/12 职场文书
2015秋季运动会通讯稿
2015/07/18 职场文书
关于五一放假的通知
2015/08/18 职场文书
创业计划书之奶茶店开店方案范本!
2019/08/06 职场文书
golang 接口嵌套实现复用的操作
2021/04/29 Golang
vue-router中hash模式与history模式的区别
2021/06/23 Vue.js
Mysql8.0递归查询的简单用法示例
2021/08/04 MySQL