我从零开始学习javascript。我目前正试图掌握DOM。我有这样一个HTML页面:
<html>
<head>
<title>javascript</title>
</head>
<body>
<h1>Welcome to javascript</h1>
Visit me <a href="facebook.com">here.</a>
<p> <img id="image" src="kalam.jpg"></p>
<script type="text/javascript" src="code.js">
</script>
</body>
</html>
现在,我想阅读a
标签。
var links = document.body.getElementsByTagName("a")[0];
console.log(links.href);
效果很好。现在我想读图片。
var imageLink = document.body.getElementById("image");
console.log(imageLink.src);
但是,上面的代码不起作用。
我收到了一个错误:
TypeError: document.body.getElementById不是一个函数。
改为:
var imageLink = document.getElementById("image");
console.log(imageLink.src);
效果很好。
我的问题是关于document.body.getEl...
和document.getEl..
的区别吗?
document.body
只读取主体部分,而document.getEl..
只读取整个文档,包括标题等吗?如果是这样的话,那么上述代码是否都能工作呢?
发布于 2015-11-20 13:25:19
document.getElementById()
从文档中获取具有匹配ID的元素。
document.body.getElementById()
不存在。
document.getElementsByTagName()
从文档中获取与标记名称匹配的所有元素。
someOtherElement.getElementsByTagName
获取与标记名称匹配的所有元素,这些元素都是someOtherElement
的后代。
由于在HTML文档中ID必须是全局唯一的,所以通常不需要getElementById
方法存在于document
对象本身以外的任何地方。
发布于 2015-11-20 13:24:50
getElementById是文档对象的函数(因此它在document.body中根本不存在)
getElementsByTagName是任何dom元素(包括document.body)的函数。
发布于 2015-11-20 13:25:05
使用document.getElementById,您正在检索页面上具有指定ID的特定元素。ID对于页面上的每个元素都应该是唯一的。当使用document.form (或其他什么)时,您正在“筛选”您的选择。
https://stackoverflow.com/questions/33827752
复制相似问题