当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 说不清的 childNodes

Javascript
JavaScript效率调优经验
IE8 兼容性问题(属性名区分大小写)
javascript globalStorage类代码
一些常用的JS功能函数(2009-06-04更新)
js 鼠标点击事件及其它捕获
IE innerHTML,outerHTML所引起的问题
Firefox outerHTML实现代码
JavaScript 封装Ajax传递的数据代码
javascript 手机号码验证是否正确
javascript 冒号 使用说明
javascript 获取链接文件地址中第一个斜线内的正则表达式
JavaScript 回车 焦点切换
javascript 禁止复制网页
图片连续滚动代码[兼容IE/firefox]
犀利的js 函数集合
firefo xml 读写实现js代码
动态刷新 dorado树的js代码
javascript 框架小结 个人工作经验
Javascript 学习书 推荐
javascript getElementByTagName的使用

Javascript 中的 说不清的 childNodes


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-04   浏览: 459 ::
收藏到网摘: n/a

以下内容在IE浏览器下测试:

firstChild 获取对象的 childNodes 集合的第一个子对象的引用。

<div onclick="alert(this.firstChild.tagName)">
<span>span-cnbruce</span>
<pre>pre-cnbruce</pre>
</div>


lastChild 获取该对象 childNodes 集合中最后一个子对象的引用。

<div onclick="alert(this.lastChild.tagName)">
<span>span-cnbruce</span>
<pre>pre-cnbruce</pre>
</div>

在<div>标签内再加一行lastChild就找不到了

<div onclick="alert(this.lastChild.tagName)">
<span>span-cnbruce</span>
<pre>pre-cnbruce</pre>
<font>font-james</font>
</div>

那么用childNodes来测试

<div onclick="alert(this.childNodes[0].tagName)">
<span>span-cnbruce</span>
<pre>pre-cnbruce</pre>
<font>font-james</font>
</div>

childNodes[0]是表示span,而childNodes[1]表示的并非pre,childNodes[2]才是。

那么如果说childNodes[0]是span,childNodes[2]是pre,那么childNodes[1]则是这两个标签对象间的换行

但为什么childNodes[3]表示了font,而不是childNodes[4]的呢?

<div onclick="alert(this.childNodes[3].tagName)">
<span>span-cnbruce</span>
<pre>pre-cnbruce</pre>
<font>font-james</font>
</div>
再来一行,childNodes[4]表示的又即是换行,childNodes[5]才是标签p

<div onclick="alert(this.childNodes[5].tagName)">
<span>span-cnbruce</span>
<pre>pre-cnbruce</pre>
<font>font-james</font>
<p>p-jack</p>
</div>
根据这个规律,我可以断定childNodes[6]不是换行

<div onclick="alert(this.childNodes[6].tagName)">
<span>span-cnbruce</span>
<pre>pre-cnbruce</pre>
<font>font-james</font>
<p>p-jack</p>
<a>a-href</a>
</div>
那么对于对象的换行来说,首项是1,公差是3的等差数列?

此外,对于FF浏览器的测试结果表示满意:
childNodes[1]、childNodes[3]、childNodes[5]、childNodes[7]分别表示<span> <pre> <font> <p>