Loveyuki's BLOG

L-BLOG.NET, The Matrix Reloaded.

Firefox 里面选取子节点的问题。
Loveyuki | 2007-12-04 10:54 | 1255 点击 | 5 评论 | FirefoxDOM

有时候需要用 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 ,哈哈

引用通告:http://www.loveyuki.com/Article/17/Trackback.ashx
Gravatar
放牛娃

2007-12-04 03:25 #
是这样的,以前用过一个ajax程序,在ie里面运行很好,在firefox中就不行,很烦人
Gravatar
汤尼尔

2007-12-04 04:09 #
...我个人就是习惯getElements...这样……所以我自己做的Ajax程序还没发现这样的问题……
Gravatar
Loveyuki

2007-12-04 09:12 #
嘿嘿,你用用 jQuery 就知道了。真是一种享受啊。。。
Gravatar
测试一下加号

2007-12-18 05:15 #
测试一下加号+
Gravatar
火狐

2007-12-26 21:27 #
RIA + SiteMap不错的想法,支持。
(必填)
(必填,不会被公开)
 

版权所有©2007-2008, Loveyuki.com | 系统:Bitrac | 皮肤:Blog Pixel | 空间域名:光辉互联 易联网络