jQuery在appendTo prependTo中是否使用clone?

问题描述 投票:0回答:1

大家好,我正在为我的网站写一个小版本的jquery(不是全部)。(为了缩短我的代码)我想到了prependTo和appendTo方法,这给我提出了一个问题。

jQuery是用clone方法还是cloneNode方法来构建这些功能?

谢谢......

javascript jquery append clonenode jquery-clone
1个回答
1
投票

根据 appentTo() 文件这取决于你是针对一个现有元素还是多个元素。

我们也可以选择页面上的一个元素,然后将其插入到另一个元素中。

$( "h2" ).appendTo( $( ".container" ) );

如果以这种方式选择的元素被插入到DOM的其他位置,它将被移动到目标位置(不是克隆),并返回一个由插入元素组成的新集合。

<div class="container">
  <div class="inner">Hello</div>
  <div class="inner">Goodbye</div>
  <h2>Greetings</h2>
</div>

然而,如果有多个目标元素,除了最后一个目标元素外,每个目标元素都会被克隆,并返回新的集合(原始元素加上克隆元素)。


0
投票

根据下面@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 );
            }
        } );
    },
© www.soinside.com 2019 - 2024. All rights reserved.