2014-10-06 216 views
2

我是相對較新的JQuery。比方說,我有一個div的結構是這樣的:循環通過JQuery對象

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

,我想的是檢索類「目標」的ID對廣告一個onClick功能。

我試着用:

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

但它返回:undefined是不是一個函數

什麼是通過這些元素迭代檢索其ID的正確方法嗎?

回答

3

嘗試通過包裹jQuery對象調用.attr()功能,

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 2014-10-06 10:36:05

+0

@塑料是的,它是..高興地幫助。 – 2014-10-06 10:36:54

+0

@Plastic是在變量中緩存遍歷的元素集合通常是遵循的良好實踐。繼續在即將到來的項目中這樣做。 – 2014-10-06 10:41:08