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时会被克隆wrapAll,因此您无法.wrappers通过操作来影响已插入 DOM 的对象wrapper,您需要从文档中选择它们。

于 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 回答