注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

{'coding': 'life'}

          I want to be a geek

 
 
 

日志

 
 
 
 

Attributes.length  

2011-02-19 02:44:04|  分类: 前端 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

怕忘了就收集了

Attributes.length
by xiaojue on 07/28/2010

思考一下如果我想获得下面这个容器的attributes属性长度如何办到?

<div style=”display:none” data=”test1″ data2=”test2″ id=”test”>test</div>

恩,我们可以用get方法直接取,但是如果我不知道data,data2甚至不知道他又style,我们怎么办呢?

一般思路都是会去遍历这个节点了。

document.getElementById(“test”).attributes["data"];

恩。这样也可以取到你想要的。可是如果真的放入循环里,IE下的话你可真的就虾米了。我们来查看下Attributes.length这个属性在IF下和FF下到底有什么区别。

FF:Attributes。length:4; OK是我们想要的4个节点属性style,data,data2,id

IE:Attributes.length:110;NB啊。。。居然多达100多个。

好吧,通过遍历我得知那多出来的100多个属性都是什么onclick啊,onmouseover等等等等的默认属性,IE把他们也都算进去了。我靠,那怎么办。我们该如何获取兼容浏览器的,一个未知节点属性的元素,都存在什么自定义节点属性呢?

后来在javascriptkit里找到了答案:

http://www.javascriptkit.com/dhtmltutors/domattribute2.shtml

看下面代码:
var totalattributes=0

for (i=0;i<document.getElementById(“test”).attributes.length;i++){

//if attribute is user defined

if (document.getElementById(“test”).attributes[i].specified)

totalattributes++

}
一目了然了。

原文:http://www.designsor.com/page/6
  评论这张
 
阅读(273)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017