Как получить идентификатор вложенного div для создания переменной с - PullRequest
1 голос
/ 04 ноября 2011

Я пытаюсь создать переменную для использования в функции.Функция должна выполняться на нескольких div, которые имеют отдельные идентификаторы.По сути, var будет захватывать ID каждого 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(){ ...

. Любая помощь будет чрезвычайно полезна!

Ответы [ 4 ]

5 голосов
/ 04 ноября 2011
$('.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 голосов
/ 04 ноября 2011

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

$('.group div.element').click(function() {
   $(this).....;
});
1 голос
/ 04 ноября 2011

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

$('.element').click(function(){
   id = $(this).attr('id');
});
0 голосов
/ 04 ноября 2011

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

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

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

Такчтобы вызвать функцию при нажатии:

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

Кроме того, пока все div имеют классы, просто выберите класс:

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

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

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

...