请考虑以下代码:(实例here)
$(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
。
答案 0 :(得分:32)
由于您只是包装了元素,因此可以使用parent()来获取新插入的包装器:
$(".a").wrapAll("<div class='wrapper'></div>")
.parent().css("border", "5px solid black");
答案 1 :(得分:6)
调用wrapper
时,wrapAll
中存储的jQuery对象会被克隆,因此您无法通过操纵.wrappers
来影响已插入DOM的wrapper
,需要从文档中选择它们。
答案 2 :(得分:-2)
$(function() {
var wrapper = $("<div class='wrapper'></div>");
var wrapped = $(".a").wrapAll(wrapper);
wrapped.css("border", "5px solid black");
});