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;
}

(0)

相关推荐

  • javascript中自定义对象的属性方法分享

    首先介绍下关联数组: 复制代码 代码如下: <script> var test=new Object(); test["a"]=1; test["b"]="string"; test["c"]=false; alert(test["a"]); </script> 执行上面的代码,显示1.在javascript中,方法和属性一样当做值来看待. 复制代码 代码如下: <script

  • 每天一篇javascript学习小结(属性定义方法)

    定义(Definition).定义属性需要使用相应的函数,比如: Object.defineProperty(obj, "prop", propDesc) 如果obj没有prop这个自身属性,则该函数的作用是给obj添加一个自身属性prop并赋值, 参数propDesc指定了该属性拥有的特性(可写性,可枚举性等). 如果obj已经有了prop这个自身属性,则该函数的作用是修改这个已有属性的特性,当然也包括它的属性值. 1.defineProperty var book = { _yea

  • Javascript创建自定义对象 创建Object实例添加属性和方法

    如下所示: 复制代码 代码如下: var person = new Object(); person.name = "Nicholas"; person.age = "29" person.job = "Software Engineer"; person.sayName = function () { alert(this.name); }; person.sayName();上面的例子创建了一个名为person的对象,并为它添加了三个属性(n

  • 如何通过javascript操作web控件的自定义属性

    在编程时,有时会使用web服务器控件的自定义属性.例如,TextBox控件中没有IsNotNull属性,但是我们可以自己添加一个IsNotNull属性,从而作为一个标记来方便我们编写程序. 虽然,IDE会提示"IsNotNull不是TextBox的属性"这个警告信息但是也不妨碍我们使用! 代码:<asp:TextBox ID="TextBox1" runat="server" IsNotNull="e"></

  • JavaScript通过prototype给对象定义属性用法实例

    本文实例讲述了JavaScript通过prototype给对象定义属性的用法.分享给大家供大家参考.具体分析如下: 下面的JS代码定义了movie对象.在使用对象的过程中又通过prototype给对象添加了isComedy属性,调用的时候直接使用object.isComedy即可,非常方便. <script type="text/javascript"> <!-- function movieToString() { return("title: "

  • 用javascript添加控件自定义属性解析

    前面说过为HTML元素添加自定义的属性,是通过手动在HTML控件中加上,其实可以在javascript中动态添加:如有一文本框: 复制代码 代码如下: <input type="text" id="txtInput" name="txtInput" value="自定义文本"> 如想增加idvalue属性(值为"自定义值"),可以在javascript中这样写: 复制代码 代码如下: var t

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

    HTML元素,属性已经十分丰富了.但是,在某些场合下,也会显得捉襟见肘,这时候自定义属性就发挥了十分关键的作用. Html元素的自定义属性,使用起来,十分方便,例如: <input type="button" value="Click Me, Baby!" /> 假设我们现在需要限制,这个按钮,只能点击2次,然后就失效了. 通常的实现方式,是可以利用全局变量的形式来记录点击次数,但我们这里用自定义属性来实现这个功能,展示一下自定义属性的优势:我们对上面的

  • JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)

    IE中new Date(strDate)返回无效时间解决方式: 方法一: function getDateForStringDate(strDate){ //切割年月日与时分秒称为数组 var s = strDate.split(" "); var s1 = s[0].split("-"); var s2 = s[1].split(":"); if(s2.length==2){ s2.push("00"); } return

  • 设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)

    由于chrome,safari,opara 浏览器还未支持自动 "设为首页" & "加入收藏".  所以我们只能try, catch一下, 给个错误提示!  也算完美了. 另外ie中, 很多人也碰到过 它window.external.addFavorite.  时会报错的问题.  所以俺也只好抛出提示信息了. 加入收藏: 复制代码 代码如下: function addFavorite(){    if (document.all){        try{

  • 浅谈JS读取DOM对象(标签)的自定义属性

    DOM对象对于js来说,是个很基础的元素,我们写js一般来说,都一定会对它进行操作.我们可以很方便地给它加上自定义的属性,比如: <div id="test" class="hello"></div> var test = document.getElementById("test"); test.adang = "adang"; alert(test.adang); 我们会发现,已经给这个id为tes

  • js脚本编写简单刷票投票系统

    本文实例为大家分享了js刷票投票系统的具体代码,供大家参考,具体内容如下 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <meta h

  • ASP.NET中常用输出JS脚本的类实例

    本文实例讲述了ASP.NET中常用输出JS脚本的类,针对过去输出js脚本的类进行了一定的改进.在项目开发中非常具有实用价值.分享给大家供大家参考.具体如下: 很多时候在ASP.NET中我们经常需要输出一些JS脚本,比如弹出一个警告窗口,返回到历史页面等JS功能,我看到网上流传得比较广的是马先光写的一个JScript类,这个类基本将经常用到的JS脚本包含了,非常方便,唯一的不足是作者采用的Response.Write(string msg)的办法,这样造成输出的js脚本在<html></h

  • JavaScript实现body内任意节点的自定义属性功能示例

    本文实例讲述了JavaScript实现body内任意节点的自定义属性功能.分享给大家供大家参考,具体如下: 在HTML中body内的任意节点是可以自定义属性的,当然不包括body, 比如以下的代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htm

  • Javascript公共脚本库系列(一): 弹出层脚本

    一.摘要 本系列文章是为了抽象通用的,跨浏览器的脚本方法. 本篇文章讲解弹出浮动层的javascript函数, 以及函数的原理和使用注意事项. 二.实现效果 用脚本弹出浮动层是我们最常用的脚本方法之一.下面是效果图:  点击图中的"航空公司"后,会在"航空公司"下面弹出浮动层. 在网上弹出框的脚本相当多, 而且还有各种第三方JS框架可供我们使用.但是其中有的脚本过于简单,仅仅粗略的实现弹出效果而忽略了灵活性,通用性和跨浏览器特性. 使用JS框架又有些杀鸡用牛刀.所以

  • JS脚本加载后执行相应回调函数的操作方法

    项目中经常会遇到这样的问题:当某个 js 脚本加载完成后再执行相应任务,但很多朋友可能并不知道怎么判断我们要加载的 js 文件是否加载完成,如果没有加载完成我们就调用 js 文件里面的函数是不会成功的.本文主要讲解怎么在成功加载 js 文件后再执行相应回调任务. 基本思路 我们可以动态的创建 <script> 元素,然后通过更改它的 src 属性来加载脚本,但是怎么知道这个脚本文件加载完成了呢?因为有些函数需要在脚本加载完成才能调用.IE 浏览器中可以使用 <script> 元素的

  • IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法

    本文实例讲述了IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法.分享给大家供大家参考,具体如下: 经常我们用表单提交东西,在提交后,浏览器会自动记录你输入的东西,下次你再输入的时候,可以重新选择,但是如果你是用IE的话,这里有一个BUG, 其他浏览器没有这个问题.当然首先你得设置IE 浏览器选项是可以记录表单数据的,然后写一段代码来测试. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> &

随机推荐