Как получить только один элемент DOM по имени класса? Я предполагаю, что синтаксис получения элементов по имени класса - это getElementsByClassName, но я не уверен, сколько элементов он вернется.
Заранее спасибо.
Как получить только один элемент DOM по имени класса? Я предполагаю, что синтаксис получения элементов по имени класса - это getElementsByClassName, но я не уверен, сколько элементов он вернется.
Заранее спасибо.
document.getElementsByClassName('className')
всегда возвращает несколько элементов, потому что концептуально Классы предназначены для применения к нескольким элементам. Если вам нужен только первый элемент в DOM с этим классом, вы можете выбрать первый элемент из возвращаемого массива.
var elements = document.getElementsByClassName('className');
var requiredElement = elements[0];
Иначе, если вы действительно хотите выбрать только один элемент. Затем вам нужно использовать "id", поскольку концептуально он используется как идентификатор уникальных элементов на веб-странице.
// HTML
<div id="myElement"></div>
// JS
var requiredElement = document.getElementById('myElement');
Пояснения:
getElementsByClassName возвращает список узлов, а не массив
Вам не нужен JQuery
Вероятно, вы искали document.querySelector
:
Как получить только один элемент DOM по имени класса?
var firstElementWithClass = document.querySelector('.myclass');
см. также https://developer.mozilla.org/en/docs/Web/API/Document/querySelector
Вы можете использовать jQuery:
$('.className').eq(index)
Или вы можете использовать встроенный метод javascript:
var elements = document.getElementsByClassName('className');
Это возвращает nodeList элементов, которые вы можете выполнять и делать то, что хотите.
Если вы хотите только один, вы можете получить доступ к элементам в версии javascript следующим образом:
elements[index]
Для тех, кто ищет один лайнер
var first = getElementsByClassName('test')[0];
Вы можете сделать как ниже, используя querySelector
var firstElementWithClass = document.querySelector('.myclass');
Используйте NodeList.item().
Например:
var first = getElementsByClassName('test').item(0);