Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Изменить содержимое во всех тегах с одинаковым классом (https://javascript.ru/forum/css-html/69255-izmenit-soderzhimoe-vo-vsekh-tegakh-s-odinakovym-klassom.html)

Jostorl 09.06.2017 11:31

Изменить содержимое во всех тегах с одинаковым классом
 
Привет всем. Народ, помогите скриптик запилить. На интернет магазине я отчищаю кнопку "В корзину" от лишних тегов вот так:

document.querySelector('.to-cart').innerHTML = 'В корзину';

Кнопка имеет класс 'to-cart'.

Но в списке товаров где этих кнопок много этот скрипт, понятное дело, обрабатывает только первую кнопку.

Как пройтись по всем элементам и изменить каждый из них?

Предположим что HTML такого вида:

<div class="greateparant">

<div class="parant">
<div class="child">
<div class="to-cart"></div>
</div>
</div>

<div class="parant">
<div class="child">
<div class="to-cart"></div>
</div>
</div>

<div class="parant">
<div class="child">
<div class="to-cart"></div>
</div>
</div>

</div>

Как мне обратиться к каждому диву с классом "to-cart" ?

ksa 09.06.2017 14:04

Цитата:

Сообщение от Jostorl
Как пройтись по всем элементам и изменить каждый из них?

Использовать
document.querySelectorAll('.to-cart')


Ну и циклы... ;)

Jostorl 09.06.2017 14:07

Я не шарю в javascript так хорошо. Покажите полный код, пожалуйста

j0hnik 09.06.2017 14:09

Если вдруг не понял КСА

<html>
<head>
	<meta charset="utf-8">
</head>
<body>
	<div class="greateparant">
		<div class="parant">
			<div class="child">
				<div class="to-cart"></div>
			</div>
		</div>
		<div class="parant">
			<div class="child">
				<div class="to-cart"></div>
			</div>
		</div>
		<div class="parant">
			<div class="child">
				<div class="to-cart"></div>
			</div>
		</div>
	</div>
	<script>
		[].forEach.call(document.querySelectorAll('.to-cart'), function(el) { 
			el.innerHTML = 'В корзину'
		});
	</script>
</body>
</html>

Jostorl 09.06.2017 14:38

Спасибо, работает


Часовой пояс GMT +3, время: 21:59.