jQuery:如何使用"wrapAll()"创建包装器元素?

Mis*_*hko 23 javascript jquery wrapall

请考虑以下代码:( 这里的实例)

HTML:

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

CSS:

.wrapper {
  background-color: #777;
}
Run Code Online (Sandbox Code Playgroud)

JS:

<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>
Run Code Online (Sandbox Code Playgroud)

获取创建的包装器并更改其属性的正确方法是什么?

注意:.wrapper DOM中还有其他元素,因此不起作用:

$(".wrapper").css("border", "5px solid black");
Run Code Online (Sandbox Code Playgroud)

我也不想为id创建的包装器赋予唯一性.

Fré*_*idi 32

由于您只是包装了元素,因此可以使用parent()来获取新插入的包装器:

$(".a").wrapAll("<div class='wrapper'></div>")
       .parent().css("border", "5px solid black");
Run Code Online (Sandbox Code Playgroud)


kar*_*m79 6

存储的jQuery对象在wrapperwrapAll调用时会被克隆,因此您不能通过操作来影响.wrappers已插入DOM的对象wrapper,您需要从文档中选择它们.