25

次のコードを検討してください:(ここに実際の例)

$(function() {
  var wrapper = $("<div class='wrapper'></div>");
  $(".a").wrapAll(wrapper);
  wrapper.css("border", "5px solid black"); // Doesn't work
});
.wrapper {
  background-color: #777;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="a">Hello</div>
<div class="a">Stack</div>
<div class="a">Overflow</div>

作成されたラッパーを取得してその属性を変更する正しい方法は何でしょうか?

注: DOMには他の.wrapper要素があるため、これは機能しません。

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

id作成したラッパーにも固有のものを与えたくありません。

4

3 に答える 3

34

要素をラップしたばかりなので、parent()を使用して、新しく挿入されたラッパーを取得できます。

$(".a").wrapAll("<div class='wrapper'></div>")
       .parent().css("border", "5px solid black");
于 2011-08-07T12:36:38.243 に答える
6

に格納されているjQueryオブジェクトは、呼び出されるとwrapper複製されるため、操作によってDOMに挿入されたオブジェクトwrapAllに影響を与えることはできません。ドキュメントからそれらを選択する必要があります。.wrapperswrapper

于 2011-08-07T12:44:43.877 に答える
-2
$(function() {
    var wrapper = $("<div class='wrapper'></div>");
    var wrapped = $(".a").wrapAll(wrapper);
    wrapped.css("border", "5px solid black");
});
于 2011-08-07T12:38:21.727 に答える