Мне нужно изменить обе строки в 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>
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости