childNodes的问题~~它返回的到底是什么?

boss00000 2008-10-25 10:33:33
<div id="pagecode_ajax">

<a href="#" onclick="test_Pagecode(this);change_page(this)" id="test">1</a>

<a href="#" onclick="test_Pagecode(this);change_page(this)" id="test">2</a>

<a href="#" onclick="test_Pagecode(this);change_page(this)" id="test">3</a>

</div>

按字面理解childNodes应该返回的是原素的子节点的集合!
如上,我用:
var childs=window.document.getElementById("pagecode_ajax").childNodes;
先获取<div id="pagecode_ajax"/>这样元素的子节点的集合

然后用:
for(var i=0;i<childs.length;i++)
{
alert(childs[i].tagName);
}
在页面中弹出警告框以显示每一个节点的标签名,可是<div id="pagecode_ajax">中只有3个<a>标签!

运行页面的结果却是弹出多个警告框,除了显示<a>标签名以外就是undefined!!!!
请问这是为什么?
...全文
151 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wtcsy 2008-10-25
  • 打赏
  • 举报
回复
#text就是文本节点的nodeName
boss00000 2008-10-25
  • 打赏
  • 举报
回复
我晕了~~~我改成alert(childs[i].nodeName),运行只是undefined变成#text了!!!
#text重哪里来的我都不知道
cgisir 2008-10-25
  • 打赏
  • 举报
回复
FF下空格换行也为节点
wtcsy 2008-10-25
  • 打赏
  • 举报
回复
经测试
ie6下没有 ff下才有你说的

其实是ff下 把 1 2 3也看成的节点 看成文本节点 他是没有标签的 所以弹出的是undefined
把alert(childs[i].tagName); 改成alert(childs[i].nodeName);就可以看到 #text A #text A #text A 这样弹出来的

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧