@vanyproduction

Как реализовать цикл реагирования на клик?

Здравствуйте.
Есть следующие DOM-элементы:
<div id="parent-1">
    <div id="child-1"></div>
</div>
<div id="parent-2">
    <div id="child-2"></div>
</div>
<div id="parent-3">
    <div id="child-3"></div>
</div>

Каким образом можно присвоить класс элементу parent-* при нажатии на child-*?
  • Вопрос задан
  • 380 просмотров
Решения вопроса 3
@Zewkin
Я у мамы фронтэндер
document.addEventListener('click', function(e) {
      if (e.target.getAttribute('id').substr(0, 5) == 'child') {
        e.target.parentNode.className = 'test';
      }
    });
Ответ написан
leni_m
@leni_m
ЧупаКобрус
<div id="parent-1">
    <div class="child" id="child-1" data-id="1"></div>
</div>

Jquery
$('.child').on('click', function(){
   var id = $(this).attr('data-id');
   $('#parent-'+id).addClass('class');
});
Ответ написан
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
<div id="test">
	<div id="parent-1">
    <div id="child-1">child-1</div>
</div>
<div id="parent-2">
    <div id="child-2">child-2</div>
</div>
<div id="parent-3">
    <div id="child-3">child-3</div>
</div>
</div>


<script type="text/javascript">
'use strict';
var test= document.getElementById('test');

test.onclick= function(e) {
	var t= e.target;
	if (t.id.indexOf('child') === -1) return;
	t.parentNode.classList.add('myClass');
	e.stopPropagation();
}
</script>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
попробуй классы - классная штука, придумана специально для подобных задач
ты никак не сможешь в цикле это сделать, потому что нет обобщения у парентов, чтобы посчитать их кол-во и определить конец цикла

еще jQuery неплохая штука
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы