Я хочу знать, есть ли способ getElementByClassName("classname").innerHTML
или что-то в эквиваленте getElementById("ClassName").innerHTML
.
Как получить имя элемента по имени
Ответ 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).
Ответ 2
Вы можете сделать это, используя jquery
$('.className').html();
Ответ 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.