jQuery包装语法

DA.*_*DA. 7 html javascript jquery word-wrap

这是一天的结束.我希望我只是失去逻辑.

我不能让这个工作:

var $divA= $("<div></div>").addClass('classA');

var $divB= $("<div></div>").addClass('classB');

$myDiv.after($divA.wrap($divB));
Run Code Online (Sandbox Code Playgroud)

以上应该转为:

<div id="myDiv"></div>
Run Code Online (Sandbox Code Playgroud)

进入:

<div id="myDiv"></div>
<div class="classB">
    <div class="classA"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

但它似乎不适用于那里的'包装'.我没有得到任何错误,它只是没有divB与divB包装,只是自己插入divA.

我误会了吗?

更新:

一个不起作用的简单示例:

$myBox.after($("<p></p>").wrap("<div></div>"));
Run Code Online (Sandbox Code Playgroud)

这将在myBox之后添加DIV.

似乎jQuery不喜欢将wrap添加到之后.

Leo*_*Leo 3

你有没有尝试过

$myDiv.after($divA.wrap('<div class="divB"></div>'));
Run Code Online (Sandbox Code Playgroud)

只是为了测试目的?

据我了解,您不应该将 jQuery 对象传递给包装函数:

.wrap() 函数可以采用任何可以传递给 $() 工厂函数的字符串或对象来指定 DOM 结构。该结构可以嵌套几层,但应该只包含一个最里面的元素。该结构将包裹在匹配元素集中的每个元素周围。

如果上面的例子有效,那么这就是原因;-)