jquery - jquery v1.9.1 中 .appendTo() 的变化

标签 jquery jquery-1.9 jquery-1.7

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

As of 1.9, these methods(.appendTo, .insertBefore, .insertAfter, and .replaceAll) always return a new set, making them consistently usable with chaining and the .end() method. Prior to 1.9, they would return the old set only if there was a single target element. Note that these methods have always returned the aggregate set of all elements appended to the target elements.

我尝试了这个 api 的简单用法

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

这是fiddle link

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

但文档中已经解释过,在 1.9 之前,它将返回旧集(在我的示例中,旧集指的是我相信的 div 元素)。我对此肯定有错误的想法。

请帮助纠正我的理解。

最佳答案

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

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

这是大多数调用的 jQuery 链接的情况 - 函数返回它被调用的元素,因此您可以继续用它做其他事情。我相信 manipulation所有都是这种情况。 jQuery 函数的子集。

关于jquery - jquery v1.9.1 中 .appendTo() 的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17856423/

相关文章:

javascript - 如何用 jQuery 1.8.3 的实现替换 jQuery 1.9.1 的 $.parseJSON 函数

javascript - jquery:如何选择属性名称中包含数组值的复选框?

动态元素的 jQuery 1.7 on() 和 off() 方法

javascript - 如何计算商品及服务税值

jQuery:使用 .on() 而不是 .live() 将事件处理程序附加到 $ ('selector' ) 对象

php - zend框架中填充子表单的问题

javascript - 如何使用 jQuery 验证表单、阻止提交表单并在指定的 div 中显示正确的错误消息?

javascript - 处理javascript函数中的无参数

javascript - 限制也考虑数字的单词

jQuery:用名称替换列表项文本值