2011-08-07 3 views
22

は、次のコードを考えてみます(実際の例herejQuery: "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オブジェクトは、クローン化されます.wrappersはDOM内に挿入されており、文書から選択する必要があります。wrapperを操作してください。

+0

+1はどのように 'wrapAll()'が動作するかを説明するためのものですが、私の質問には答えません。 –

+0

@ミシャ - 私はフレデリックが既にそれをしていたと思って、ちょうどポイントを追加したかった。 – karim79

+0

@ karim79おそらく元の回答へのコメントとしてそれを行うより良い – andyface

関連する問題