2011-08-07 2 views
22

다음 코드 고려 : (라이브 예 here를)jQuery : "wrapAll()"을 사용하여 만든 래퍼 요소를 얻는 방법은 무엇입니까?

HTML :

<div class="a">Hello</div> 
<div class="a">Stack</div> 
<div class="a">Overflow</div> 

CSS :

.wrapper { 
    background-color: #777; 
} 

JS 님의 올바른 방법이 될 것입니다 무엇

$(function() { 
    var wrapper = $("<div class='wrapper'></div>"); 
    $(".a").wrapAll(wrapper); 
    wrapper.css("border", "5px solid black"); // Doesn't work 
}); 

생성 된 래퍼를 가져 와서 속성을 변경 하시겠습니까?

참고 : 거기 DOM의 다른 .wrapper 요소, 그래서이 작동하지 않습니다

$(".wrapper").css("border", "5px solid black"); 

가 나도 생성 된 래퍼에 고유 id을주고 싶지 않아. 방금 요소를 감싸 때문에

답변

29

, 당신은 새로 삽입 된 래퍼를 얻기 위해 parent()를 사용할 수 있습니다

$(".a").wrapAll("<div class='wrapper'></div>") 
     .parent().css("border", "5px solid black"); 
+0

@Matthew,'wrapAll()'은 감싸 진 요소를 반환합니다. [this fiddle] (http://jsfiddle.net/2e2WL/)을 보면'PIV '가 아니라'DIV'라고 말할 것입니다. –

-2
$(function() { 
    var wrapper = $("<div class='wrapper'></div>"); 
    var wrapped = $(".a").wrapAll(wrapper); 
    wrapped.css("border", "5px solid black"); 
}); 
+0

이것은 어떻게 작동합니까, 미안 해요. – func0der

5

호출 될 때 wrapAll에는 영향을주지 수 wrapper에 저장 jQuery 오브젝트가 복제됩니다 .wrapperswrapper을 조작하여 DOM에 삽입되었으므로 문서에서 선택해야합니다.

+0

wrapAll() 작동 방식을 설명하는 +1. 내 질문에는 답이 없습니다. –

+0

@Misha - 나는 Frederic이 이미 그것을했다고 생각했다. 단지 포인트를 추가하기를 원했다. – karim79

+0

@ karim79 아마도 원래 답변에 대한 의견으로 그것을하는 것이 좋습니다. – andyface

관련 문제