我如何通过类名获取一个DOM元素? 我猜想,通过类名获取元素的语法是getElementsByClassName
,但我不确定它会返回多少个元素。
我如何通过类名获取一个DOM元素? 我猜想,通过类名获取元素的语法是getElementsByClassName
,但我不确定它会返回多少个元素。
document.getElementsByClassName('className')
总是会返回多个元素,因为从概念上讲,类应该被应用于多个元素。如果你只想要DOM中具有该类的第一个元素,你可以从返回的类似数组的 HTMLCollection
中选择第一个元素。
var elements = document.getElementsByClassName('className');
var requiredElement = elements[0];
否则,如果你真的想只选择一个元素。那么你需要使用“id”,因为在Web页面中概念上它被用作唯一元素的标识符。
// HTML
<div id="myElement"></div>
// JS
var requiredElement = document.getElementById('myElement');
nodelist[index in the node list]
是正确的初始答案。然而,第二部分只是一个建议(我所说的一切)。 - rlemondocument.querySelector(".the-class-name")
来找到它。 - T.J. Crowder说明:
getElementsByClassName 返回的是一个节点列表,而不是数组
你不需要 jQuery
你可能在寻找的是 document.querySelector
:
我如何仅通过类名获取一个 DOM 元素?
var firstElementWithClass = document.querySelector('.myclass');
另请参阅:https://developer.mozilla.org/en/docs/Web/API/Document/querySelector
document.getElementsByClassName
返回的是一个(动态)HTMLCollection
,而不是一个(静态)NodeList
。 - connexo$('.className').eq(index)
或者您可以使用 JavaScript 内置方法:
var elements = document.getElementsByClassName('className');
这将返回一个节点列表,您可以迭代并制作您想要的内容。
如果您只想要一个元素,则可以像以下javascript版本中那样访问元素:
elements[index]
document.getElementsByClassName
返回的是一个(动态)HTMLCollection
,而不是一个(静态)NodeList
。 - connexo如果你正在寻找一行代码的解决方案
最初的回答:
var first = document.getElementsByClassName('test')[0];
Uncaught ReferenceError: getElementsByClassName is not defined
- connexodocument.getElementsByClassName("className")[index]