动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网页制作 > HTML教程
网页制作:Dreamweaver教程,FrontPages教程,Javascript教程,HTML教程,CSS教程,心得技巧,DHTML教程,网页特效,Discuz!论坛
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ HTML教程 ]的信息



本月文章推荐
.用meta标签来增强网页功能.
.HTML之多媒体.
.初学web标准的几个误区.
.Cool Web Scrollbars - 定制网页.
.给网页文字加上即时提示.
.marquee基本语法的全解释.
.让字体美起来.
.HTML组件(HTML COMPONENTS)之七.
.HTML中的表格元素.
.html页面中嵌入另一个html页面.
.alt属性和title属性.
.基于Web标准的UI组件 — 菜单(1).
.HTML之表格标记.
.偷窥HTML与XML之间的秘密.
.HTML之其他标记.
.HTML文件HEAD内部标记浅析.
.HTML语言剖析(三)文件标记.
.HTML-加速、再加速(上).
.HTML及XML语言的转义字符.
.使用Web标准建站第9天:CSS布局入.

对Web页面元素的绝对唯一引用方法

发表日期:2006-9-29 |


    我们知道要在Web页面中引用一个HTML元素,最简单的方法就是使用getElementById方法,或其类似的一组getElementsByXxx方法。可是这里需要注意的是,这些方法其实都不能完全绝对的唯一确定对一个元素的引用。

    至于getElementsByXxx我们不说了,它本身就是getElements,很明白了,那么getElementById也不能唯一确定一个元素吗?当然是,不能。由于html的不严格性,在同一页面中重复元素的id是被允许的。关于id的更多细节问题,请参考:细说HTML元素的ID和Name属性的区别,一文。

    那么怎么才能唯一的确定对一个元素的引用呢?使用DOM之间的引用结构来查找?这个方法虽然是行的,但是可操作性是在是太差了。这里需要说说我原来介绍过的html属性uniqueID,它是微软为HTML元素扩充的专有属性,不遵循W3C的规范。这个uniqueID有一些undocumented的特性,uniqueID其实也是和id类似的一套元素表示体系,只是它是纯客户端的标示方案。它的一些细节在前面一个链接中已经介绍了,下面我们主要说说它的特性。

    由于它是元素的表示体系,那么它也因该和id的特性一样啰?实际上确实是这样,除了uniqueID的生成方式和id完全不同外,uniqueID其它表现和id是一样的。我们可以通过这个uniqueID直接引用元素,就像id一样,只是由于uniqueID是动态生成的,所以我们也只能动态使用这个uniqueID,而不能以literal形式来使用。下面是一个使用示例:
var g_ELEMENTS = {};
var span = document.createElement('SPAN');
document.body.appendChild(span);
g_ELEMENTS[span.uniqueID] = span;
    这样我们就通过uniqueID将span缓存起来了,已有要引用这个span,就可以这样:
var elements = g_ELEMENTS.GetExpandoKeys();
for ( var i=0 ; i < elements.length ; ++i )
{
    var element = eval(elmenets[i]);
    // todo: other logic
}
    除了使用eval来引用这个uniqueID外,getElementById也有一个undocumented的特性,就是它也支持uniqueID,这样一来,我们就可以使用getElementById(elements[i])来绝对唯一的引用一个页面元素。

    可能有人会疑惑,这个uniqueID到底有什么用啊?其实在动态生成大量页面元素时,使用uniqueID可以非常方面的为元素生成真正的unique的id,它的意义就在于可以将这些动态元素cache起来,做统一管理。特别是在实现动态在的TreeView时,如果合理使用uniqueID到来的好处,就可以避免很多需要对树进行反复递归便利才能完成的工作。还有,uniqueID是IE的DOM提供的原生解决方案,比自己去做unique标示要方面高效的多,并且还利于对元素检索。

    参考信息:GetExpandoKeys(),另外就是本文不适合FireFox及其它非IE内核浏览器。
http://www.cnblogs.com/birdshome/archive/2006/09/28/uniqueid_usage.html

上一篇:HTML中meta作用 人气:17020
下一篇:Html 书签的使用 人气:12753
浏览全部getElements的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-24 Sablog-X v2.0 预览版
2008-7-24 帝国备份王EmpireBak 2008 正式版
2008-7-24 网趣网上购物系统时尚版 v8.2
2008-7-24 纵横B2B电子商务系统XYECS!B2B v
2008-7-24 e路小说小偷 v1.2.0723
2008-7-24 凌风美女图片站程序 v2.2
2008-7-24 TOM15电影收索程序
2008-7-24 清风信息自动采集生成系统 v1.0
2008-7-24 QQ邮箱编辑器 v1.0 (小小菜刀ASP
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵