有时候需要用 JavaScript 得到某个 Node 下面的第一个或者最后一个子节点。在 IE 下面实现起来就很简单,直接用 firstChild 或者 lastChild 就可以了,但是 Firefox 却不行,因为 Firefox 会把无意义的空格和回车也算成一个文本节点。所以 Firefox 要实现的话必须先用 getElementsByTagName 得到某个 TagName 的所有节点。然后在节点数组里面选取就是了,这种方法在 IE 下面也是有效果的
,浏览器内置支持的的 firstChild 和 lastChild 基本算是废了,没什么大用处了。
但是如果不知道要取得哪个 TagName 的话怎么办? 其实也很简单,直接遍历节点的 childNodes,然后判断 nodeType,如果是 1 表示是一个 HTML 节点,如果是 3 表示一个文本节点。
另外需要注意一点的是 DOM 是树结构,具体的代码就不写了。
不知道为什么,可能我的思维不是正统程序员的思维吧,感觉写 Firefox 下操作 DOM 的 JS 远没有 IE 下来的方便。真希望所有浏览器都能实现同一个基础 ajax 平台,就像 prototype 和 jQuery 一样,那样多方便啊。
个人希望以后网站的发展趋势是 RIA + SiteMap ,哈哈