jQuery:append()vs appendTo()

我正在使用以下代码测试jQuery的.append() vs .appendTo()方法:

 $('div/>', { id : id, text : $(this).text() }).appendTo('div[type|="item"]#'+id); $('div[type|="item"]#'+id).append($(this).text()); 

请注意,选择器在.appendTo().append()是相同的,但后者工作(在同一页面内),而前者不工作。 为什么?

如何让.appendTo()使用这种类型的(复杂) 选择器 ? 这两种方法的插值方式不同吗? 我缺少一些语法吗?

我不想用无关紧要的代码来混淆post:只要说选择器引用的元素存在就足够了,正如产生所需结果的.append()方法所certificate的那样。 如果需要更多信息,请与我们联系。

谢谢!

要回答这个问题,你没有一个元素可以appendTo到任何东西,因为你缺少了字符(在你的情况下它是一个开口尖括号 < )。

这个

 $('div/>',{}); 

需要是

 $('
',{});

创建一个元素,否则它完全按照你的说法做 - 没什么!


否则你似乎有正确的顺序,就像这样:

  • .append()将参数指定的内容插入到匹配元素集中每个元素的末尾,如

     $(Append_To_This).append(The_Content_Given_Here); 
  • .appendTo()相反的方式工作 :它将匹配元素集中的每个元素插入到参数中给定的目标的末尾,如

     $(The_Content_Given_Here).appendTo(Append_To_This); 

还有prependTo() .prepend()prependTo()完全相同,唯一的区别是前置元素添加在目标元素内容的开头而不是结尾。

append将参数附加到您正在处理的对象。

appendTo将您正在处理的对象附加到参数。

更多信息: http : //api.jquery.com/appendTo/

除此之外,这里有一些不妥之处:

 $('div/>', 

这不是选择任何东西。

我遇到了类似的问题,并且在研究方面获得了更多的见解。 听到目标,元素等令人困惑,我更喜欢将外部选择器可视化为$ container,并将元素添加为$ widget。 用简单的英语,我想将小部件添加到容器中。 append和appendTo都可以通过以下方式使用,并获得完全相同的结果。

$container = $("#containerdiv");

$widget = $("

widget

")

方法1: $container.append($widget)

方法2: $widget.appendTo($container)

关键的区别在于返回的内容。 在第一种情况下,返回$ container,在第二种情况下,返回$ widget。 如果您使用另一个jquery语句链接请求,这将非常有用。 如果你想使用$ container,使用第一个构造并使用widget,请使用第二种方法。 例如,

如果你想将2个小部件附加到容器,你会给

$container.append($widget1).append($widget2)

如果你想添加一个小部件然后小部件的标题来说’酷小工具’,你会给

$widget.appendTo($container).find('#title').text("Cool Widget")

$('#someDiv').append(someStuff); someStuff.appendTo($('someDiv')); //这里的结果相同,只是根据你的sitch做不同的方式

两种方法都执行相同的任务。 主要区别是 –

  • 在语法中,
  • 在内容和目标的位置。

使用.append() ,方法前面的选择器表达式是插入内容的容器。

另一方面,使用.appendTo() ,内容在方法之前,作为选择器表达式或动态创建的标记,并将其插入目标容器中。

.append()方法将指定的内容作为jQuery集合中每个元素的最后一个子节点插入(要将其作为第一个子 .prepend()插入,请使用.prepend() )。

.append().appendTo()方法执行相同的任务。 主要区别在于语法,特别是在内容和目标的位置。 使用.append() ,方法前面的选择器表达式是插入内容的容器。 另一方面,使用.appendTo() ,内容在方法之前,作为选择器表达式或动态创建的标记,并将其插入目标容器中。

使这两个更容易理解。

假设我有三个ABC订购包机。

append C意味着在A之前移动C,这导致C的重新启动但不是A,所以我们有CAB

appendTO C意味着在C之后移动A,这导致A的重定位而不是C,所以我们有BCA

  • append和’appendTo’都具有相同的甲和丙的结果,但三个章程的整个顺序发生了变化。
  • 由于OOO.appendTo(XXX)的重新定位,XXX应该在此控制之前存在。

.append()和.appendTo()方法执行相同的任务,只有要插入的目标和html内容语法才会出现。 通过http://api.jquery.com/appendTo/

返回结果是唯一的区别,它使appendTo更方便的方法链接:

 $("
...
").appendTo(target).hide(); //hide new-element, not the whole target