2014-10-06 2 views
2

Я относительно новый с JQuery. Скажем, у меня есть структура дивы, как это:Loop через объект JQuery

<div class='quater'> 
    <div id='a' class='target'></div> 
    <div id='b' class='target'></div> 
    <div id='c' class='no_target'></div> 
</div> 

и я хотел бы объявление функции OnClick, что получить класс «целевые» идентификаторов.

Я попытался с:

$('.quater').on('click', function(){ 
    var $value = $(this).children('.target'); 
    $value.each(function(){ 
     alert(this.attr('id')); 
    }); 
}); 

но он возвращает: неопределенное не является функция

Что такое правильный способ перебора этих элементов, чтобы получить их идентификаторы?

ответ

3

Попытки вызвать функцию .attr() над обернутым объектом JQuery,

alert($(this).attr('id')); 

это обычный JavaScript объектом, и он не будет содержать функцию члена под названием .attr()

Полный код будет,

$('.quater').on('click', function() { 
 
    var $value = $(this).children('.target'); 
 
    $value.each(function() { 
 
     alert($(this).attr('id')); 
 
    }); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> 
 
<div class='quater'>test 
 
    <div id='a' class='target'></div> 
 
    <div id='b' class='target'></div> 
 
    <div id='c' class='no_target'></div> 
 
</div>

+0

TNX много, очевидно, работает как шарм, так это правильный способ итерации через выбранные элементы JQuery? Я имею в виду, правильно ли использовать переменную $ для сохранения коллекции и перебора ее с помощью функции .each()? – Plastic

+0

@Plastic Да это .. И кстати рад помочь.! –

+0

@Plastic Да, кеширование пройденного набора элементов в переменной обычно является хорошей практикой. Продолжайте делать это в своих будущих проектах. –

Смежные вопросы