首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从getElementById搜索getElementById?

如何从getElementById搜索getElementById?
EN

Stack Overflow用户
提问于 2017-11-27 12:59:56
回答 2查看 1.1K关注 0票数 0

出于某种原因,…当我getElementById然后尝试在该元素中搜索另一个getElementById时,它就不工作了。

getElementById中查找ID的唯一方法是使用querySelector,为什么是这样?

领导

是的,我知道querySelector是一种解决方案.但它没有回答为什么getElementById > getElementById不能工作的问题。

getElementById > getElementById应该能工作.很简单的代码。我不是让它模拟重力什么的。

我拥有的:

代码语言:javascript
复制
document.getElementById("first").getElementById("second").innerHTML = "It works"
代码语言:javascript
复制
<div id="first">
  <div id="second"></div>
</div>

我想要达到的目标:

代码语言:javascript
复制
document.getElementById("first").querySelector("#second").innerHTML = "It works"
代码语言:javascript
复制
<div id="first">
  <div id="second"></div>
</div>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-27 13:01:55

你想做的是不合逻辑的。

id属性在页面上必须是唯一的。不应该有两个具有相同id的元素

getElementById:通过其ID返回对元素的引用;id是一个字符串,可用于唯一标识元素,即HTML属性中的元素。(https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementById)

Element.id属性表示元素的标识符,反映id全局属性。它在文档中必须是唯一的,并且经常用于使用getElementById检索元素。id的其他常用用法包括在使用CSS对文档进行样式设计时使用元素的ID作为选择器。(https://developer.mozilla.org/en-US/docs/Web/API/Element/id)

这意味着您可以忽略父id,并立即获得子id的元素。

这也是为什么除了getElementById之外,任何东西都不能使用document的原因。没有理由“范围”搜索某种类型的父元素。

票数 3
EN

Stack Overflow用户

发布于 2017-11-27 13:02:34

但它没有回答为什么getElementById > getElementById不能工作的问题。

因为根据文档

与其他一些类似的方法不同,getElementById只能作为全局文档对象的方法使用,而不能作为DOM中所有元素对象的方法使用。因为ID值在整个文档中必须是唯一的,所以不需要函数的“本地”版本。

document.getElementById("first") 不返回文档,它返回一个Element

元素 是对元素对象的引用,如果文档中没有指定ID的元素,则为null。

元素没有getElementById方法。

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

https://stackoverflow.com/questions/47511581

复制
相关文章

相似问题

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