麻烦各位帮我解释一下,底下是代码:
var obj = document.getElementById("myDiv");
alert(obj);
这里的obj返回的确实是javascript对象,但是弹出对话框的时候我发现这个对象带个中括号[],如果是带有中括号,就应该可以认为返回的是一个对象数组,我就可以通过下标来访问,但是令我出乎意料的是通过下标访问时alert(obj[0]),返回的是undefined,这该怎么解释呢?
var obj = document.getElementById("myDiv");
alert(obj);
这里的obj返回的确实是javascript对象,但是弹出对话框的时候我发现这个对象带个中括号[],如果是带有中括号,就应该可以认为返回的是一个对象数组,我就可以通过下标来访问,但是令我出乎意料的是通过下标访问时alert(obj[0]),返回的是undefined,这该怎么解释呢?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><body>
<div id="myDiv">
<p>test</p>
</div>
<div id="myDiv2">
<p>test2</p>
</div>
<script type="text/javascript">
var obj1 = document.getElementById('myDiv');
var obj2 = document.getElementsByTagName('div');
var obj3 = new Array(1,2,3);
alert(obj1);
alert(obj2);
alert(obj3);
alert(obj2[0]); //这里看起来像是数组操作,实际上不是,obj2实际上是一种哈希结构
</script>
</body>
</html>
<script type="text/javascript">
var obj = document.getElementById("sh");
var str = "";
for(p in obj.attributes) {
str += p + ": " + obj[p] + "<br>";
}
document.write(str);
</script>