Как получить идентификатор вложенного div для создания var с

#jquery #var

#jquery #var

Вопрос:

Я пытаюсь создать переменную для использования в функции. Функция должна выполняться на нескольких div, которые имеют отдельные идентификаторы. По сути, var будет получать идентификатор каждого div и запускать функцию на основе этого. Я просто не могу заставить его работать правильно.

Вот моя разметка:

 <div class="group">
    <div id="element1" class="element">Stuff</div>
    <div id="element2" class="element">Stuff</div>
</div>
  

Вот моя «попытка» jQuery var 🙂

 var elementVar = $('.group').find('.element')this.attr('id');
  

Таким образом, по сути, будет выполняться следующим образом, чтобы функция выполнялась для каждого идентификатора div

 $(elementVar).click(function(){ ...
  

Любая помощь была бы очень признательна!

Ответ №1:

 $('.group .element').click(function(){
id = $(this).attr('id');
});
  

но я рекомендую что-то вроде этого. Это дает вам чистые данные.

 <div id="element2" class="element" data-id="2">Stuff</div>
$('.group .element').click(function(){
id = $(this).attr('data-id');
});
  

Ответ №2:

Это должно сработать:

 $('.group div.element').click(function() {
   $(this).....;
});
  

Ответ №3:

Разве это не просто

 $('.element').click(function(){
   id = $(this).attr('id');
});
  

Ответ №4:

Просто используйте это:

 $(".group").children().each(function(){});
  

Это позволяет получить все дочерние элементы div с классом group и применить к ним функцию внутри функции each() jQuery.

Итак, чтобы запустить функцию по щелчку:

 $(".group").children().each(function(){
  $(this).click(function(){
    // click event here
  });
});
  

Кроме того, пока все divs будут иметь классы, просто выберите класс:

 $(".element").each(function(){
  $(this).click(function(){
    // click event here
  });
});
  

Но вы, вероятно, добавили классы только для того, чтобы ваш метод работал. Если вы не собираетесь добавлять классы, то первый метод — ваш лучший вариант.

Подробнее children(); здесь и each(); здесь.