Трансляция текста из inputa в
Надо сделать что бы из поля input, текст сразу появлялся в поля "p" и их должно быть два.
Вот html:
<div id="home" class="home">
<div class="stiker__menu">
<input id="input__stiker1" class="input__stiker" placeholder="Стикер 1" name="name"/>
<input id="input__stiker2" class="input__stiker" placeholder="Стикер 2" name="name"/>
</div>
<div class="img">
<p id="stiker1" class="stiker">puk</p>
<p id="stiker2" class="stiker">puk</p>
<img src="shop_1.jpg" alt="">
</div>
</div>
Вот Js:
const input = document.querySelectorAll('input');
const log = document.querySelectorAll('.stiker');
input.addEventListener('input', updateValue);
function updateValue(event) {
log.textContent = event.target.value;
}
Заранее спасибо :3
Ответы (1 шт):
Автор решения: De.Minov
→ Ссылка
Универсальный скрипт, если этих инпутов будет много.
Подробное описание работы в комментариях к коду.
document.querySelector('.stiker__menu').addEventListener('input', function(e){ // Берём блок sticker__menu и вешаем на него делегированный обработчик, который будет слушать изменения input'ов "входящие" в этот блок
if(e.target.classList.contains('input__stiker')) { // Если происходят изменения инпута input__stiker, то выполняем код:
document.querySelector('#'+e.target.id.replace('input__', '')).innerText = e.target.value; // находим элемент чей ID равен тому, что указан у текущего input, но без `input__`, и присваиваем ему текст текущего input'а
}
});
<div id="home" class="home">
<div class="stiker__menu">
<input id="input__stiker1" class="input__stiker" placeholder="Стикер 1" name="name" />
<input id="input__stiker2" class="input__stiker" placeholder="Стикер 2" name="name" />
</div>
<div class="img">
<p id="stiker1" class="stiker">puk</p>
<p id="stiker2" class="stiker">puk</p>
<img src="shop_1.jpg" alt="">
</div>
</div>