#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
});
});
Но вы, вероятно, добавили классы только для того, чтобы ваш метод работал. Если вы не собираетесь добавлять классы, то первый метод — ваш лучший вариант.