目前除了语法这些功能之间没有很大的区别:
$('.target').append('text');
$('text').appendTo('.target');
正如说jQuery的文档 :
在.append()和.appendTo()方法执行相同的任务。 主要的区别是在语法,具体而言,在内容和目标的位置。 与.append(),则该方法前的选择器表达式是其中插入的内容的容器。 与.appendTo(),在另一方面,内容先于方法,既可以作为选择器表达式或动态创建的标记,并且其被插入到目标容器。
所以在这种情况下,最好是使用.append(),并.appendTo()? 在该代码样本只适合那些两个函数之一,另一个是不够好?
同样的问题适用于:
- .prepend() VS .prependTo()
- 。之前() VS .insertBefore()
- 。经过() VS .insertAfter() 。
你自己说的---没有太多的区别。 我的使用何种选择,但是,通常依赖于方法链,前提是你已经在你的元素引用。
即
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
当你创建一个元素,它流畅的使用.appendTo
当量
$("<div>", {text: "hello"}).appendTo("body");
VS
$("body").append( $("<div>", {text: "hello" }) /*Awkward having to call jQuery constructor here*/);
在上下文中
- 我个人使用的两个函数取决于什么指令集,我的职责是做或在使用它们的( 上下文 ),你的阅读方式的代码可能会改变你喜欢写代码的方式,它可能会感觉更好不管怎样主观你自己的。
无论哪种方式,这是相当字面我发现自己没有想到会自动写入每个。
在每一个方面,如果对象是你操纵的区域,
$(target).append(content)
//within a function based around manipulating a specific area
似乎更有意义,而如果该函数的主题是新的内容,那么
$(content).appendTo(target);
//appending data to something
更有意义。
链接功能
- 同样重要的是要注意,在每种情况下链接功能时藏汉更有意义。 即。 如果你已经在处理一个元素
$(target).toggle().append(content);
使得比添加另一行,反之亦然更有意义。
资源
就像他们说的,主要是追加()和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>
这是当你连锁几个jQuery的动作组合很有用的。 像这样:
$('.target').css({display:"block"}).fadeOut().appendTo('.somewhere');
// appends target to somewhere
要么:
$('.target').css({display:"block"}).fadeOut().append('.somewhere');
// appends somewhere to target
这两个是不同的操作,因此它是有用的他们俩。
它主要是口味的问题。
一种情形下appendTo
是更方便的是当你必须的元素,而不是一个jQuery对象的引用,例如,在可变dest
:
$("<div/>").appendTo(dest);
要使用append
方法,你必须创建一个jQuery对象的元素才能够调用它:
$(dest).append($("<div/>"));