javascript UniqueID属性
因为IE对格式混乱(不完整的或有错嵌套关系)的HTML代码由极好的容错性,对于HTML元素的ID反复问题对它来说简直就是小菜一碟。假设出现这样的情况,比方:
<div id="divText">The second line.</div>
这时的divText就不是一个对DIV元素的引用了,而变成了一个数组,当中包括两个元素,并按两个DIV元素在DHTML对象树种出现的次序排序。
这种ID怎么用啊? 是不是认为有种被IE晃点了的感觉呢?!
幸好IE迷途知返,在5.0后为HTML元素提供了一个uniqueID的仅仅读属性。这下好,给它弄成readonly的了,看丫还乱不乱?! 还好真的不乱了,只是怎么说这个uniqueID有趣呢?由于uniqueID本身不提供default的值,就是说IE在解析完HTML代码构建了DHMTL树后,并不会给HTML元素分配uniqueID。而须要我们去訪问了HTML元素的uniqueID属性后,才会为其生成这个uniqueID的值。事实上就是lazy initialize技术,仅仅是放在这里认为比較好玩。对于uniqueNumber,它是相对于uniqueID的,uniqueID的格式是:ms__id/d+。即一个"ms__id"前缀加一个流水号。所以这个uniqueNumber就是单独表示那个流水号码的。
uniqueID第二个好玩的地方是,document对象也具有这个属性,只是它和其他HTML的uniqueID属性的意义是全然不同的。当我们每调用一次document.uniqueID,系统就会返回一个新的uniqueID值,只是doucment没有uniqueNumber属性哈。
这时我想起来我在用Popup窗体制作无限级菜单时,构造的__MenuCache__类中,自己实现了一个unique id的产生结构,就有些多此一举了。
#1楼 [楼主] 回复 引用 查看
对了忘说了,正是由于HTML元素的uniqueID是lazy load方式生成的。所以不论什么一个HTML元素的uniqueID的详细取值和它在DHMTL树中的位置毫无关系,一个HTML元素的uniqueID就是仅仅保证在一个页面作用域中unique!
javascript UniqueID属性的更多相关文章
- JavaScript document属性和方法
JavaScript document属性和方法 --------------------------------------------属性: 1. Attributes 存储节点的属性列表 ...
- JavaScript 全局属性/函数
JavaScript 全局 JavaScript 全局属性和方法可用于创建Javascript对象. JavaScript 全局属性 属性 描述 Infinity 代表正的无穷大的数值. NaN 指示 ...
- 删除要被替换的元素的所有事件处理 程序和 JavaScript 对象属性
使用本节介绍的方法替换子节点可能会导致浏览器的内存占用问题,尤其是在 IE 中,问题更加明显.在删除带有事件处理程序或引用了其他 JavaScript 对象子树时,就有可能导致内存占用问题.假设 某个 ...
- Javascript对象属性与方法汇总
Javascript对象属性与方法汇总 发布时间:2015-03-06 编辑:www.jquerycn.cn 详细介绍下,javascript对象属性与对象方法的相关知识,包括javascript字符 ...
- javascript 节点属性详解
javascript 节点属性详解 根据 DOM,html 文档中的每个成分都是一个节点 DOM 是这样规定的:整个文档是一个文档节点每个 html 标签是一个元素节点包含在于 html 元素中的文本 ...
- JavaScript对象属性的基础教程指南
JavaScript是使用“对象化编程”的,或者叫“面向对象编程”的.所谓“对象化编程”,意思是把JavaScript能涉及的范围划分成大大小小的对象,对象下面还继续划分对象直至非常详细为止,所有的编 ...
- JavaScript对象属性访问的两种方式
JavaScript对象属性访问的两种方式 object.attribute object["attribute"] 例如: var employees = [ { "f ...
- javascript对属性的操作
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- JavaScript:属性的操作
一.属性的设置和获取 1.属性的设置和获取主要有两种方式: <!DOCTYPE html> <html lang="en"> <head> &l ...
随机推荐
- 与众不同 windows phone (12) - Background Task(后台任务)之 PeriodicTask(周期任务)和 ResourceIntensiveTask(资源密集型任务)
原文:与众不同 windows phone (12) - Background Task(后台任务)之 PeriodicTask(周期任务)和 ResourceIntensiveTask(资源密集型任 ...
- mysql union ,UNION RESULT
mysql> explain select * from t100 union all select * from t200; +----+--------------+------------ ...
- HDU--杭电--4506--小明系列故事——师兄帮帮忙--快速幂取模
小明系列故事——师兄帮帮忙 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) To ...
- 改动已有gpg密钥的用户标识及凝视
/********************************************************************* * Author : Samson * Date ...
- JQuery选择器操作
!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"><head runat="se ...
- 两个Hacker,专门Patch TObject
http://hallvards.blogspot.fr/2006/03/hack-8-explicit-vmt-calls.html http://www.deltics.co.nz/blog/po ...
- Eclipse添加和查看书签
添加书签: 在编辑框左边栏右击 > Add Bookmark > 编辑书签名称(可以直接使用默认名称)> OK 查看书签: Window > Show View > Ot ...
- [Django实战] 第4篇 - 用户认证(用户登录)
今天来实现用户登录模块 首先,我们创建一个表单(forms.py): from django import forms from django.contrib.auth.models import U ...
- [docker]docker的四种网络方式
声明: 本博客欢迎转发,但请保留原作者信息! 博客地址:http://blog.csdn.net/halcyonbaby 内容系本人学习.研究和总结,如有雷同,实属荣幸! bridge方式(默认) H ...
- java大数处理
比较两个数大小 import java.math.*; import java.util.*; public class Main { public static void main(String[] ...