Подтвердить что ты не робот

Как получить имя элемента по имени

Я хочу знать, есть ли способ getElementByClassName("classname").innerHTML или что-то в эквиваленте getElementById("ClassName").innerHTML.

4b9b3361

Ответ 1

В имени функции отсутствует s. getElementsByTagName возвращает коллекцию элементов, элементов, которые необходимо перебрать:

var elements = document.getElementsByClassName("classname");

for (var i = 0; i < elements.length; i++) {
    elements[i].innerHTML = 'foo';
}

IE8 и ниже не поддерживают getElementsByClassName, поэтому вам нужно будет найти polyfill или использовать querySelectorAll (IE8).

Ответ 3

Я предлагаю вам использовать JQuery, где вы можете напрямую использовать селектор CSS (например .yourclass) для поиска всех элементов данного класса:

$('.yourclass').doWhatYouWant();

Если вы предпочитаете не использовать JQuery, вы можете использовать простой Javascript:

document.getElementsByClassName('my-fancy-class')

Но будьте осторожны с проблемой несовместимости IE8. В качестве альтернативы (медленнее, но вы можете создавать более сложные селектора CSS) вы можете использовать:

document.querySelector('.cssSelector')

Что вернет один элемент, отвечающий на ваш селектор CSS, или

document.querySelectorAll('.cssSelector')

Вместо этого будет возвращено несколько элементов.

Ответ 4

Если tou использовать jQuery, вы можете получить его так же, как в селекторе CSS, поэтому:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>

то...

$('.classname').each(function() {
    // get html
    $(this).html();
    // set html
    $(this).html('something');
});

Обратите внимание, что у вас также есть удобный способ управления innerHTML.