设:span节点下有span子节点。问:为何通过dom就是不能通过父节点找到子节点呢?

allen1981813 2009-03-25 09:02:40
<span id = '1' >
<span id = '2'>
hello,world
</span>
</span>

为何通过节点1的firstChild.id,失败,无法得到,是个空。
但当节点2的firstChild.nodeValue则可以清楚得到hello,world。

为何?
...全文
252 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
baifuta 2009-03-27
  • 打赏
  • 举报
回复
觉得danica7773 说的有道理。
我想应该 ”空格“ 导致的问题。
你把这两个span间的所有 ”空格“ 都去掉试试看,包括
像标签内”>“前的空格:
<span id ='1'><span id ='2'>
hello,world
</span>
</span>
Janway 2009-03-27
  • 打赏
  • 举报
回复
FF比较特殊,即使支持innerHTML也是很有限的,毕竟它不是DHML标准。
把document.getElementById('1').firstChild.innerHTML,改成:
document.getElementById('1').firstChild.textContent试试看!

其实我更建议楼主用Jquery来做选择器,那就很简单了:
var val = $("#1 2").text();
此时val的值肯定是"hello,world”

最后我有一点不理解,既然第二个span有自己的ID,为何还要通过其父标签来选择呢?直接选择不是更有效率吗?
allen1981813 2009-03-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wocow2316 的回复:]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档 </title>
<script type="text/javascript">
function FindSpan() {
document.writeln(document.getElementById('1').firstChild.innerHTML);
}
</script>
</head>


<body>
<span id = '1' >
<span id = '2' >
hello,world
</span>
</span>

<button  value="Click me" onclick="FindSpan()"> </butt…
[/Quote]
还是不奏效,
我用getbyname这样类似的函数,全部获得,遍历来看,也是出问题。
开发ffx的插件碰到的。
allen1981813 2009-03-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 danica7773 的回复:]
你在哪试的,IE还是FF

第一个span的开始标签后面有个换行符是吧.

它就是那个firstChild,它会有ID吗?!

你把代码写在一行再试试看.
[/Quote]
我写firefox扩展的,但是遇到要解析html时候,span下的span就是取不到。
wocow2316 2009-03-25
  • 打赏
  • 举报
回复
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
<script type="text/javascript">
function FindSpan() {
document.writeln(document.getElementById('1').firstChild.innerHTML);
}
</script>
</head>


<body>
<span id = '1' >
<span id = '2' >
hello,world
</span>
</span>

<button value="Click me" onclick="FindSpan()"></button>
</body>
</html>
打字员 2009-03-25
  • 打赏
  • 举报
回复
你在哪试的,IE还是FF

第一个span的开始标签后面有个换行符是吧.

它就是那个firstChild,它会有ID吗?!

你把代码写在一行再试试看.

61,112

社区成员

发帖
与我相关
我的任务
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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