Как сделать что бы Javascript работал во всех блоках с одинаковыми id? [дубликат]

162
12 августа 2018, 09:30

На данный вопрос уже ответили:

  • Скрипт применяется только к одному идентификатору 2 ответа

У меня на сайте есть скрип, который берет значение с тега span по Id и менят его значение. Так вот когда я поставил скрипт на вид материала, в каталоге материалов он меняет значение только первого материала. Как сделать что бы Javascript работал во всех блоках с одинаковыми id? Что бы он также менял значение в других материалах.

<p style="display:none;" id="dr">62</p> <!--ЗДЕСЬ КУРС ДОЛЛАРА--> 
<p id="rub" style="display:none;">12</p> 
<p style="display: none;" id="oldprice">32</p> 
<span style="color: #de0707; font-size: 16px; font-weight: 500;" id="dollar"></span> <span style="color: #de0707; font-size: 16px; font-weight: 500;" >руб.</span><br> 
<span id="olddollar"></span> <span>руб. - розница</span> 
<br> 
<p style="display:none;" id="dr">62</p> <!--ЗДЕСЬ КУРС ДОЛЛАРА--> 
<p id="rub" style="display:none;">12</p> 
<p style="display: none;" id="oldprice">32</p> 
<span style="color: #de0707; font-size: 16px; font-weight: 500;" id="dollar"></span> <span style="color: #de0707; font-size: 16px; font-weight: 500;" >руб.</span><br> 
<span id="olddollar"></span> <span>руб. - розница</span> 
<script> 
var rub = document.getElementById("rub").innerHTML; 
var dr = document.getElementById('dr').innerHTML; 
var oldrub = document.getElementById("oldprice").innerHTML; 
var dollar = document.getElementById('dollar'); 
var olddollar = document.getElementById('olddollar'); 
summa = (parseInt(oldrub * dr)); 
olddollar.innerHTML = summa; 
result = (parseInt(rub * dr)); 
dollar.innerHTML = result; 
</script>

Answer 1

По спецификации - id должен иметь уникальное значение и не может повторяться на странице больше одного раза. Все остальные значения будут просто игнорироваться. Используйте другой селектор ( класс, поиск по атрибуту, тэг и т.д. )

Пример:

// список элементов с классом active
document.getElementsByClassName('active');
// список элементов у которых есть атрибут clickable
document.querySelectorAll('*[clickable]');
// все ссылки
document.querySelectorAll('a');
READ ALSO
fancybox галерея

fancybox галерея

Проблема с библиотекой fancybox до этого не работал с ней поэтому не могу понять в чем ошибка (при клике на ссылку происходит обычный переброс...

180
Програмно нажать на кнопку JS / JQuery

Програмно нажать на кнопку JS / JQuery

Есть кнопка, на которую нужно нажать програмно:

151
Создать iframe на js

Создать iframe на js

Я хочу создать свой iframeМне надо его сделать так: мне надо создать ссылку на iframe(ссылку сделать на js), при встраивание этой ссылки на сайт появлялся,...

201