找某html节点下面子元素节点的问题

airermeng 2010-01-20 09:57:59
现有html是这样的
...
<div id="div1">
<div></div>
<span id="span1"></span>
</div>
...

现在要找div1节点下span1节点,本来我的写法是:
var obj=document.getElementById("div1");
var obj1=obj.getElementById("span1");

但是提示有错误。请问有什么解决办法?
...全文
217 13 打赏 收藏 举报
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
jol_boy 2010-01-20
  • 打赏
  • 举报
回复

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<BODY>
<div id="div1">
<div> </div>
<span>123 </span>
</div>
<div id="div2">
<div> </div>
<span>456 </span>
</div>
<SCRIPT LANGUAGE="JavaScript">
<!--
var obj=document.getElementById("div1");
var obj1=obj.getElementsByTagName("span")[0];
alert(obj1.outerHTML);

obj=document.getElementById("div2");
obj1=obj.getElementsByTagName("span")[0];
alert(obj1.outerHTML);
//-->
</SCRIPT>
</BODY>
</HTML>

草根醉秋意 2010-01-20
  • 打赏
  • 举报
回复
可以在你的弹出窗口内部使用一般人不会使用的字符作为元素的id,这样就可以避免出现冲突,
比如dialog_span1 相当于添加了一个命名的空间
deng4437 2010-01-20
  • 打赏
  • 举报
回复
var obj1=document.getElementById("span1")
或者
var obj1=document.getElementById("div1").span1
duwa789 2010-01-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yixianggao 的回复:]
oElement = document.getElementById(sIDValue)

只能用 document!!!

Web 开发常用手册

JScript语言参考.rar
http://download.csdn.net/source/308916

DHTML参考手册.rar
http://download.csdn.net/source/308913

样式表中文手册.chm
http://download.csdn.net/source/304124

[/Quote]

呵呵,本来也想发这个。
yixianggao 2010-01-20
  • 打赏
  • 举报
回复
oElement = document.getElementById(sIDValue)

只能用 document!!!

Web 开发常用手册

JScript语言参考.rar
http://download.csdn.net/source/308916

DHTML参考手册.rar
http://download.csdn.net/source/308913

样式表中文手册.chm
http://download.csdn.net/source/304124
airermeng 2010-01-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 duwa789 的回复:]
不过,为什么不直接var obj1=document.getElementById("span1");
[/Quote]

之所以这么用是因为:我用js写了一个DIV弹出窗口,我的想法是分离DIV窗口中的元素和窗口外面的元素,不知道要实现这样的分离有没有好的办法?
  • 打赏
  • 举报
回复
alert(obj1[0].id);
duwa789 2010-01-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cat_yan 的回复:]
var objSpan=document.getElementById("span1").value;
这样呢,我也是没学多久的JS。。

[/Quote]

那你是要获取啥呢,仅仅是span1中的东西吗?

document.getElementById("span1").innerHTML;

span没有value。
  • 打赏
  • 举报
回复
id="span1" 应该是唯一的,可以直接获得
document.getElementById("span1");

要是必须通过 div1 来找可以 用
var obj=document.getElementById("div1");
var obj1=obj.getElementsByTagName("span");
obj1得到是对象数组,通过数组下标访问。
alert(obj1[0]);
cat_yan 2010-01-20
  • 打赏
  • 举报
回复
var objSpan=document.getElementById("span1").value;
这样呢,我也是没学多久的JS。。
duwa789 2010-01-20
  • 打赏
  • 举报
回复
不过,为什么不直接var obj1=document.getElementById("span1");
duwa789 2010-01-20
  • 打赏
  • 举报
回复

var div = document.getElementById("div1");
var spans = div.getElementsByTagName("span");
for (var i = 0, l = spans.length; i < l; i++){
if (spans[i].id == "span1") {
alert("this is my span");
break;
}
}


startdream 2010-01-20
  • 打赏
  • 举报
回复
var obj1=document.getElementById("span1");
相关推荐
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2010-01-20 09:57
社区公告
暂无公告