2011-05-10 3 views
3

체인을 떠나지 않고 jQuery 세트에있는 요소의 자식을 세트에 추가 할 수 있습니까?체인을 떠나지 않고 jQuery 세트에 요소의 자식을 추가하십시오.

즉, 다음과 같이 것을 떠나와 : (

$('.some-elements').jqMagic("*"); 

: 나는 중간 set 변수를 만들지 않고 다음 중 하나를 수행 할 수있는 방법을 찾고 있어요

var set = $('.some-elements'); 
set.add('*', set); 
// or immediate ones only 
set.add(set.children()); 

물론 "jqMagic"플러그인을 작성할 수 있습니다. jQuery 코어에는이 기능이 없습니다.)

+0

어떤 이벤트에 아이들을 추가 하시겠습니까 ?? 'click' 또는'change' 또는 watever.if yes와 같이 [delegate] (http://api.jquery.com/delegate/)를 참조하십시오. – diEcho

+1

'set'을 사용하여 체인을 시작할 수 있습니다 (플러그인을 생성하지 않겠습니다. 단지 한 줄의 코드를 저장하는 것). 유일한 다른 방법은'$ ('. some-elements')'를 다시 사용하는 것입니다 ... –

+0

수정 : 유일한 방법은 아닙니다;) 한 방향으로 생각할 때, 즉 "부모 집합"을 먼저 얻은 다음 아이들을 추가합니다. 그러나 @Nathan이 보여 주듯이 아이들을 먼저 선택한 다음 부모를 다시 추가하는 것으로 작동합니다 ... –

답변

6

나는 AndSelf이 당신이 원하는 것을 할 수 있다고 믿습니다. 예와

갱신 :

다음 HTML을 감안할 때 :

<script language="javascript" type="text/javascript"> 

    $('.testdiv').children().css('border','solid 1px red'); 

</script> 

:

<div id="1" class="testdiv"> 
    <a href="#">test a</a> 
    <a href="#">test b</a> 
</div> 


<div id="2" class="testdiv"> 
    <a href="#">test c</a> 
    <a href="#">test d</a> 
</div> 

가이 코드는 (이 경우 앵커 태그) 빨간색 테두리를 단지 아이들을 제공합니다 이 코드는 andSelf()를 사용하여 요소 목록에 부모 div를 포함하므로 부모 div와 자식 divs - t를 모두 선택합니다 당신이 요청한대로 합쳐진 세트를주는 hus :

<script language="javascript" type="text/javascript"> 

    $('.testdiv').children().andSelf().css('border','solid 1px red'); 

</script> 
+0

두 번째 생각으로 +1 할 수 있습니다. –

+1

@Felix Kling - 예제 제공 : – Nathan

+0

감사 ... 내 마음이 뒤틀린 데, 그것이 어떻게 작동 하는지를 볼 수 없었던 이유입니다 ...하지만 한 걸음 뒤로 물러나는 것은 때때로 놀라운 일입니다;) (내가 전에 삭제 한 또 다른 코멘트를 썼습니다 ...) –

관련 문제