Посмотрите на имя метода DOM: getElement * S * ByClassName. Это множественное число, поэтому может и, скорее всего, вернет более 1 элемента.
Эти элементы будут храниться в массиве, таком как объект (пример NodeList
).
var usernames = document.getElementsByClassName('user');
var first = usernames[0];
Но на самом деле, getElementsByClassName
не так хорошо поддерживается, было бы предпочтительнее использовать querySelectorAll
(сравните the querySelector
support поддержку с тем из the getElementsByClassName
, особенно в IE)
var usernames = document.querySelectorAll('.user');
var first = usernames[0];
Кроме того, с помощью этих селекторов, вы можете обойти необходимость запрашивать весь DOM:
var username = document.querySelector('.user');//gets just one
Примечание:
Подробных информации о the NodeList
class on MDN here
Обратите внимание, что некоторые версии FireFox будут возвращать объект, который не называется NodeList
, но собственная надстройка Mozilla, в DOM API, который расширяет NodeList
конструктор. Я не могу вспомнить, что этот объект называется ATM, но я вернусь к нему, как только вспомню
+1 за то, что вы не хотите использовать jQ для чего-то вроде этого ... Это показывает, что вы готовы поставить в попытке научиться использовать JS и (clunky) DOM API самостоятельно, вместо того чтобы полагаться на часто злоупотребляемый инструмент –