大家好,我正在为我的网站写一个小版本的jquery(不是全部)。(为了缩短我的代码)我想到了prependTo和appendTo方法,这给我提出了一个问题。
jQuery是用clone方法还是cloneNode方法来构建这些功能?
谢谢......
根据 appentTo()
文件这取决于你是针对一个现有元素还是多个元素。
我们也可以选择页面上的一个元素,然后将其插入到另一个元素中。
$( "h2" ).appendTo( $( ".container" ) );
如果以这种方式选择的元素被插入到DOM的其他位置,它将被移动到目标位置(不是克隆),并返回一个由插入元素组成的新集合。
<div class="container">
<div class="inner">Hello</div>
<div class="inner">Goodbye</div>
<h2>Greetings</h2>
</div>
然而,如果有多个目标元素,除了最后一个目标元素外,每个目标元素都会被克隆,并返回新的集合(原始元素加上克隆元素)。
根据下面@Andreas的评论,看起来好像是 domManip
方法可以克隆节点,如果满足正确的条件。https:/github.comjqueryjqueryblobmastersrcmanipulation.js#L310。
append: function() {
return domManip( this, arguments, function( elem ) {
if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
var target = manipulationTarget( this, elem );
target.appendChild( elem );
}
} );
},