-2

大家好,我正在为我的网站编写一个小版本的 jquery(不是全部)。(为了缩短我的代码)

我达到了 prependTo 和 appendTo 方法,这对我提出了一个问题:

jQuery 是否使用 clone 方法或 cloneNode 方法来构建此功能?


谢谢....

4

2 回答 2

1

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

我们还可以选择页面上的一个元素并将其插入到另一个元素中:

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

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

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

但是,如果有多个目标元素,则将为除最后一个目标之外的每个目标创建插入元素的克隆副本,并返回新集合(原始元素加上克隆)。

于 2020-05-30T13:38:41.500 回答
0

domManip根据下面的@Andreas 评论,如果满足正确的条件, 该方法似乎可以克隆节点。https://github.com/jquery/jquery/blob/master/src/manipulation.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 );
            }
        } );
    },
于 2020-05-30T13:40:42.630 回答