所以我知道getElementById可用于文档对象。
const ELEMENT_BY_ID = document.getElementById('header'); // works fine
现在我想做的是在HTML节点而不是文档对象上使用getElementById。
const PARENT_ELEMENT = document.getElementById('parent');
const CHILD_BY_CLASS_NAME = PARENT_ELEMENT.getElementsByClassName('ch'); // Works fine
const CHILD_BY_ID = PARENT_ELEMENT.getElementById('child1'); // Error PARENT_ELEMENT.getElementById is not a function
在PARENT_ELEMENT中,我可以使用getElementsByClassName或标记名,但不知道为什么getElementById在这里不可用。为什么有getElementByClassName可用但getElementById不可用的原因。以下是我的HTML
<div id="parent">
<span id="child1" class="ch ch1">Child</span>
<span id="child2" class="ch ch3">Child</span>
<span id="child3" class="ch ch3">Child</span>
</div>
[与其他一些元素查找方法(例如Document.querySelector()和Document.querySelectorAll()一样,getElementById()仅作为全局文档对象的方法可用,而对于所有元素对象中的方法不可用) DOM。因为ID值在整个文档中必须唯一,所以不需要该功能的“本地”版本。