2010-06-23 3 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')); 
     }); 

이 그래도 작동하지 않습니다 ... 나는 .children를 사용하여 시도했다 : 여기

내가 사용하려고 해요 코드입니다 .

아이디어가 있으십니까?

감사합니다.

+3

당신이 작동하지 않는 이유는 "attribute begins with"선택기를 사용해야한다는 것입니다 : $ ('# items'). find ("[id^= id _]")'또는 :'$ ('#items [id^= id _]')' – user113716

답변

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

매우 가까웠습니다. 여기에 클래스 'item_box'

  • 에 의해 id_

    $('#items *[id^=id_]').each(function(){ 
        alert($(this).attr('id')); 
    }); 
    
  • 0
    1. 검색으로 시작하는 ID를 가지고 #items의 자녀를 검색하도록 수정 코드, 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/