2010-06-23 59 views
2

我有以下标记:使用jQuery .find()让孩子

<div id="items"> 
    <div class="item"> 
    <div class="item_box" id="id_1"> 
     <div class="one" id="one"></div> 
    </div> 
    </div> 
    <div class="item"> 
    <div class="item_box" id="id_2"> 
     <div class="one" id="two"></div> 
    </div> 
    </div> 
    <div class="item"> 
    <div class="item_box" id="id_3"> 
     <div class="one" id="three"></div> 
    </div> 
    </div> 
</div> 

基本上,我希望能够循环并获得价值在item_box类的ID。

这里是我想要使用的代码:

$('#items').find(/[id_]/).each(
     function(){ 
     alert($(this).attr('id')); 
     }); 

这不工作,虽然......我一直在使用。孩子尽力了,但是因为这些嵌套不会去深。

任何想法?

谢谢!

+3

你没有工作的原因是你需要使用“属性开始”选择器:'$('#items')。find(“[id^= id _]”)'或:'$( '#items [id^= id _]')' – user113716 2010-06-23 03:24:02

回答

2
$('#items').find('.item_box').each(function(){ 
    alert($(this).attr('id')); 
}); 
0

你非常接近。这是你的代码,修改搜索的#items儿童具有通过班 'item_box'

  • id_

    $('#items *[id^=id_]').each(function(){ 
        alert($(this).attr('id')); 
    }); 
    
  • 0
    1. 搜索开始的ID重复他们搜集IDS

    $(function(){ 
    
        var child = $('#items').find('div.item_box'); 
    
        var idArray = new Array(); 
    
        if(child.length){ 
    
         $.each(child,function(i,entry){ 
    
          idArray.push($(this).attr('id')); 
    
         }); 
    
        } 
    
        console.log(idArray); 
    
    });​ 
    

    小提琴协助:http://jsfiddle.net/FFp4B/