首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >document.body.getElementById和document.getElementById差

document.body.getElementById和document.getElementById差
EN

Stack Overflow用户
提问于 2015-11-20 13:19:54
回答 4查看 8.4K关注 0票数 0

我从零开始学习javascript。我目前正试图掌握DOM。我有这样一个HTML页面:

代码语言:javascript
运行
复制
<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标签。

代码语言:javascript
运行
复制
var links = document.body.getElementsByTagName("a")[0]; 

console.log(links.href);

效果很好。现在我想读图片。

代码语言:javascript
运行
复制
var imageLink = document.body.getElementById("image");

console.log(imageLink.src);

但是,上面的代码不起作用。

我收到了一个错误:

TypeError: document.body.getElementById不是一个函数。

改为:

代码语言:javascript
运行
复制
var imageLink = document.getElementById("image");

console.log(imageLink.src);

效果很好。

我的问题是关于document.body.getEl...document.getEl..的区别吗?

document.body只读取主体部分,而document.getEl..只读取整个文档,包括标题等吗?如果是这样的话,那么上述代码是否都能工作呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-11-20 13:25:19

document.getElementById()从文档中获取具有匹配ID的元素。

document.body.getElementById()不存在。

document.getElementsByTagName()从文档中获取与标记名称匹配的所有元素。

someOtherElement.getElementsByTagName获取与标记名称匹配的所有元素,这些元素都是someOtherElement的后代。

由于在HTML文档中ID必须是全局唯一的,所以通常不需要getElementById方法存在于document对象本身以外的任何地方。

票数 9
EN

Stack Overflow用户

发布于 2015-11-20 13:24:50

getElementById是文档对象的函数(因此它在document.body中根本不存在)

getElementsByTagName是任何dom元素(包括document.body)的函数。

票数 0
EN

Stack Overflow用户

发布于 2015-11-20 13:25:05

使用document.getElementById,您正在检索页面上具有指定ID的特定元素。ID对于页面上的每个元素都应该是唯一的。当使用document.form (或其他什么)时,您正在“筛选”您的选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33827752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档