更改jquery1.9.1中的.appendTo()

Spr*_*Gr8 5 jquery jquery-1.7 jquery-1.9

我试图理解以前版本的jquery 1.9.1版本中.appendTo()api的行为变化.在升级指南中说

作为1.9,这些方法(.appendTo,.insertBefore,.insertAfter.replaceAll)总是返回新集,使其与链接和一贯使用的.end()方法.在1.9之前,只有在存在单个目标元素时,它们才会返回旧集.请注意,这些方法始终返回附加到目标元素的所有元素的聚合集.

我试着简单地使用这个api

<div class="test">hello
</div>
Run Code Online (Sandbox Code Playgroud)
var $ = jQuery.noConflict();
var a =$("<p> hi </p>").appendTo("div.test").attr("style","background-color:red");
console.log(a);
Run Code Online (Sandbox Code Playgroud)

这是小提琴链接

我将一个段落元素附加到div,然后更改结果元素的背景.我在1.7.2和1.9.1中尝试了这两种情况,附加后的结果是段落元素.

但是在文档中已经解释过,在1.9之前它将返回旧的集合(在我的示例中,旧集合引用了我认为的div元素).我肯定对此有错误的想法.

请帮助纠正我的理解.

Fau*_*ust 1

“这些方法始终返回所有附加元素的聚合集”意味着它返回被调用的 jQuery 集合appendTo(),而不是传递到函数中的集合。

就您而言,这就是该段落。因此,无论您使用什么 jQuery 版本,只要“div.test”是单元素目标(顺便说一句,您不是说$('div.test')?),或者如果使用 v 1.9,只要因为“div.test”返回至少一个元素。

这是大多数调用的 jQuery 链接的情况——函数返回它被调用的元素,这样您就可以继续用它做其他事情。我相信 jQuery 函数的所有操作集都是这种情况。