Мне нужно изменить обе строки в html, но с помощью innerHTML получается изменить лишь одну строку (ту, где единица написана).
Как можно решить эту проблему? html:
<h2 id='exp'>1</h2><br/>
<h2 id='exp'>2</h2><br/>
js:
var exp = document.getElementById('exp');<br/>
exp.innerHTML = "Привет!";
Вам нужно либо изменить id у второй строки и использовать ещё один вызов getElementById
, либо использовать getElementsByTagName
:
var elements = document.getElementsByTagName('h2');
for(var i = 0; i < elements.length; i++) {
elements[i].innerHTML = 'Hello';
}
<h2>1</h2>
<h2>2</h2>
Но, конечно, лучше не использовать одинаковый id
у элементов, т. к. это не совсем корректно. Использование getElementsByTagName
также таит в себе подводные камни (вдруг на странице будут ещё h2
).
Вероятно, самым правильным способом будет использование getElementsByClassName
:
var elements = document.getElementsByClassName('exp');
for(var i = 0; i < elements.length; i++) {
elements[i].innerHTML = 'Hello';
}
<h2 class='exp'>1</h2>
<h2 class='exp'>2</h2>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок