JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)

 更新时间:2013年11月25日 09:08:07   作者:  
这篇文章主要是对JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助

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 数据结构之集合创建(1)

    JavaScript 数据结构之集合创建(1)

    这篇文章主要介绍了JavaScript 数据结构之集合创建,集合是由一组无序且唯一的元素组成。数据结构中的集合,对应的是数学概念当中的有限集合;下文详细介绍需要的小伙伴可以参考一下
    2022-04-04
  • JSONObject与JSONArray使用方法解析

    JSONObject与JSONArray使用方法解析

    这篇文章主要介绍了JSONObject与JSONArray使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • uniapp页面跳转的五种方式总结

    uniapp页面跳转的五种方式总结

    这篇文章主要给大家介绍了关于uniapp页面跳转的五种方式,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2023-03-03
  • js 模拟实现类似c#下的hashtable的简单功能代码

    js 模拟实现类似c#下的hashtable的简单功能代码

    越来越感觉js对集合的处理没有c#强大。比如在实际开发中,经常用到在一维数组或者二维数组里取某一个满足某些条件的项,通常的处理方式就是遍历数组,对比条件,匹配就取出,然后结束循环。
    2010-01-01
  • JavaScript实现的鼠标响应颜色渐变效果完整实例

    JavaScript实现的鼠标响应颜色渐变效果完整实例

    这篇文章主要介绍了JavaScript实现的鼠标响应颜色渐变效果,涉及javascript面向对象及事件监听、响应机制相关操作技巧,需要的朋友可以参考下
    2017-02-02
  • JavaScript实现简单日期特效

    JavaScript实现简单日期特效

    这篇文章主要为大家详细介绍了JavaScript实现简单日期特效,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • three.js实现围绕某物体旋转

    three.js实现围绕某物体旋转

    本篇文章主要介绍了three.js实现围绕某物体旋转的示例代码。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • JS简单获取当前年月日星期的方法示例

    JS简单获取当前年月日星期的方法示例

    这篇文章主要介绍了JS简单获取当前年月日星期的方法,结合完整实例形式分析了javascript基于自定义函数获取当前日期时间的方法,涉及javascript中Date()类的使用与日期相关运算技巧,需要的朋友可以参考下
    2017-02-02
  • BootStrap select2 动态改变值的方法

    BootStrap select2 动态改变值的方法

    这篇文章主要介绍了BootStrap select2 动态改变值的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-02-02
  • .NET微信公众号开发之创建自定义菜单

    .NET微信公众号开发之创建自定义菜单

    这篇文章主要介绍了.NET微信公众号开发之创建自定义菜单的相关资料,需要的朋友可以参考下
    2015-07-07

最新评论