2014-10-06 180 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