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中自定义对象的属性方法分享
首先介绍下关联数组: 复制代码 代码如下: <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"> &
随机推荐
- 【MyBatis源码全面解析】MyBatis一二级缓存介绍
- 详解Python中的join()函数的用法
- AngularJS使用ng-Cloak阻止初始化闪烁问题的方法
- ajaxFileUpload.js插件支持多文件上传的方法
- VBS教程:VBscript属性-Global 属性
- Android ScrollView滑动实现仿QQ空间标题栏渐变
- js点击选择文本的方法
- Javascript ES6中对象类型Sets的介绍与使用详解
- PHP文章按日期(月日)SQL归档语句
- Ajax——异步检查用户名是否存在示例
- C++中虚函数与纯虚函数的用法
- Spring与Mybatis相结合实现多数据源切换功能
- 解决Android手机屏幕横竖屏切换
- jQuery代码实现发展历程时间轴特效
- 推荐:极酷右键菜单
- js弹出的对话窗口永远保持居中显示
- Apache 并发优化设置方法
- Android使用ViewFlipper实现图片切换功能
- Hibernate中的多表查询及抓取策略
- 仿百度换肤功能的简单实例代码