jquery index()遇到的一个问题
<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)啊! 展开
你加上这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就行。