@olya_097

Почему в данному случае ошибка, не возводит в квадрат после клика?

Даны N абзацев с числами. По нажатию на любой абзац запишите в него квадрат числа, которое в нем находится.
  • Вопрос задан
  • 112 просмотров
Пригласить эксперта
Ответы на вопрос 4
archakov06
@archakov06
Frontend-разработчик (ReactJS)
Тебе надо пробежаться по каждому параграфу и забиндить в него обработчик клика.

var links = document.querySelectorAll('p');
for (var p = 0; p < links.length; p++) {
	const paragraph = links[p];
  paragraph.addEventListener('click', function (){
    paragraph.innerText = Math.pow(paragraph.innerText, 2);
  });
}
Ответ написан
locky_yotun
@locky_yotun
Я видел некоторый джаваскрипт
var links = document.querySelectorAll('p');

links.forEach(function(link) {  
  link.addEventListener('click', function() {
    var value = Number(link.innerText);
    var square = value * value;
    link.innerText = square;
  });
});
Ответ написан
Потому что links не имеет addEventListener потому что это не JQuery вам.
document.querySelectorAll('p').forEach((item)=>{item.addEventListener('click', function (){

		this.innerHTML= Math.pow(parseInt(this.innerHTML),2);

})})
Ответ написан
Stalker_RED
@Stalker_RED
Потому что querySelectorAll возвращает не один элемент, а список (NodeList) а у списка нет метода addEventListener.
Нужно на каждый элемент вешать отдельный eventListener
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы