jquery index()遇到的一个问题

<html><head><title>Hello</title></head><scriptsrc="jquery-1.7.2.js"type="text/javascr... <html>
<head>
<title>Hello</title>
</head>

<script src="jquery-1.7.2.js" type="text/javascript" ></script>
<div><span>文本块1</span></div>
<p><span>文本块2</span></p>
<body>
<span></span><p></p><div></div><h1></h1>

<script language="javascript" type="text/javascript">
var a = $("body *"); //获取 body 元素包含的所有子元素
var e = document.getElementsByTagName("div")[0];
alert(a.index(e));

</script>

</body>
</html>

做练习的时候,这段代码应该是检出body中,第一个div的index

但是,这段代码却检出的是全文中,第一个div的index

为什么会出现这种情况?

求的是
a.index(e)啊!
展开
 我来答
Q20100309Q
2012-07-05 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:83
采纳率:0%
帮助的人:109万
展开全部

你加上这3句代码的结果看看就知道了

  1.      alert(e.innerHTML);


  2.      alert(document.body.innerHTML);

3.

alert(document.getElementsByTagName("html")[0].innerHTML);



你写的网页不是很规范,浏览器不能正常解析,当然得不到预期的结果了。

<script src="jquery-1.7.2.js" type="text/javascript" ></script>这个应该放到</head>前面去,

<body>之前,</head>之后还是不要放东西比较好,不然浏览器就不知道body从哪儿开始了。
脚本放到head里,内容都放到body里。


这两句引用书上的:每个载入浏览器的 HTML 文档都会成为 Document 对象。

Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问。


也就是说Document指的是整个HTML页面的所有元素,而不是仅仅body部分。


如果你把页面写规范了,然后要使用body里的元素,可以用:

alert(document.body.getElementsByTagName("div")[0].innerHTML);

但是正常情况下body外是没有div的,所以

document.getElementsByTagName("div")[0].innerHTML就行。

xianweisi
2012-07-05 · 超过25用户采纳过TA的回答
知道答主
回答量:171
采纳率:0%
帮助的人:65.4万
展开全部
var e = document.getElementsByTagName("div")[0]; 这跟body木有关系。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式