@olya_097

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

Даны N абзацев с числами. По нажатию на любой абзац запишите в него квадрат числа, которое в нем находится.
  • Вопрос задан
  • 118 просмотров
Пригласить эксперта
Ответы на вопрос 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
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Complex Cloud Solutions Москва
от 90 000 до 120 000 руб.
EducaGroup Санкт-Петербург
от 90 000 руб.
19 апр. 2019, в 18:35
3000 руб./за проект
19 апр. 2019, в 18:01
2000 руб./за проект