在这种情况下,最好是使用.append(),并.appendTo()?(In which case

2019-06-26 09:14发布

目前除了语法这些功能之间没有很大的区别:

$('.target').append('text');
$('text').appendTo('.target');

正如说jQuery的文档 :

在.append()和.appendTo()方法执行相同的任务。 主要的区别是在语法,具体而言,在内容和目标的位置。 与.append(),则该方法前的选择器表达式是其中插入的内容的容器。 与.appendTo(),在另一方面,内容先于方法,既可以作为选择器表达式或动态创建的标记,并且其被插入到目标容器。

所以在这种情况下,最好是使用.append(),并.appendTo()? 在该代码样本只适合那些两个函数之一,另一个是不够好?

同样的问题适用于:

  • .prepend() VS .prependTo()
  • 。之前() VS .insertBefore()
  • 。经过() VS .insertAfter() 。

Answer 1:

你自己说的---没有太多的区别。 我的使用何种选择,但是,通常依赖于方法链,前提是你已经在你的元素引用。

var _target, _content;

_target.append(_content).addClass('foo');
// will add the foo class to _target

_content.appendTo(_target).addClass('foo');
// will add the foo class to _content


Answer 2:

当你创建一个元素,它流畅的使用.appendTo当量

$("<div>", {text: "hello"}).appendTo("body");

VS

$("body").append( $("<div>", {text: "hello" }) /*Awkward having to call jQuery constructor here*/);


Answer 3:

我认为,这是考虑两个要点:

  1. 那你已经有引用? 如果您已经有包含要追加的元素的jQuery对象的话很有道理使用.appendTo()而不是选择要添加的元素,然后使用.append()

  2. 你想/需要产业链的功能呢? 一个jQuery的是做得很好的事情是让你链功能结合在一起,因为每一个函数返回一个jQuery对象。 显然,如果你想打电话,你要追加的要素的功能,你需要使用.appendTo()这样你以后链中的任何功能,将应用到的元素被追加,不被附加到的元素。



Answer 4:

在上下文中

  • 我个人使用的两个函数取决于什么指令集,我的职责是做或在使用它们的( 上下文 ),你的阅读方式的代码可能会改变你喜欢代码的方式,它可能会感觉更好不管怎样主观你自己的。

无论哪种方式,这是相当字面我发现自己没有想到会自动写入每个。

在每一个方面,如果对象是你操纵的区域,


$(target).append(content)
//within a function based around manipulating a specific area

似乎更有意义,而如果该函数的主题是新的内容,那么

$(content).appendTo(target);
//appending data to something

更有意义。


链接功能

  • 同样重要的是要注意,在每种情况下链接功能时藏汉更有意义。 即。 如果你已经在处理一个元素

$(target).toggle().append(content);

使得比添加另一行,反之亦然更有意义。

资源

  • .append()(jQuery的文档)

  • .appendTo()(jQuery的文档)

  • 关于这一主题的好博客文章(见.append()和.appendTo之间的差异())



Answer 5:

就像他们说的,主要是追加()和appendTo产生相同的结果。 然而,当你开始链接的结果,你可以看到一个不同!

目标HTML:

<DIV class=.inner1><SPAN></span><SPAN></span></div>
<DIV class=.inner2><SPAN></span><SPAN></span></div>

先用追加():

$( ".inner1" )
  .append   ( "<p>Test</p>" )
  .addClass ( "addBorder" );

生产:

<DIV class="inner1 addBorder"><SPAN></span><SPAN></span>
<P>Test</p>
</div>

第二,appendTo()

$( "<p>Test</p>" )
.appendTo ( ".inner2" )
.addClass ( "addBorder" );

生产:

<DIV class="inner2">
    <SPAN></span><SPAN></span>
    <P class="addBorder">Test</p>
</div>


Answer 6:

这是当你连锁几个jQuery的动作组合很有用的。 像这样:

$('.target').css({display:"block"}).fadeOut().appendTo('.somewhere');
// appends target to somewhere

要么:

$('.target').css({display:"block"}).fadeOut().append('.somewhere');
// appends somewhere to target

这两个是不同的操作,因此它是有用的他们俩。



Answer 7:

它主要是口味的问题。

一种情形下appendTo是更方便的是当你必须的元素,而不是一个jQuery对象的引用,例如,在可变dest

$("<div/>").appendTo(dest);

要使用append方法,你必须创建一个jQuery对象的元素才能够调用它:

$(dest).append($("<div/>"));


文章来源: In which case it is better to use the .append(), and which .appendTo()?