Использует ли jQuery clone в appendTo / prependTo - PullRequest
0 голосов
/ 30 мая 2020

Привет, ребята, я пишу небольшую версию jquery (не все это) для своего веб-сайта. (Для сокращения моего кода) Я обратился к методам prependTo и appendTo, которые вызывают у меня вопрос:

Использует ли jQuery метод clone или метод cloneNode для создания этих функций?

Спасибо ....

Ответы [ 2 ]

1 голос
/ 30 мая 2020

Согласно appentTo() docs , это зависит от того, нацеливаете ли вы один существующий элемент или более одного.

Мы также можем выбрать элемент на странице и вставьте его в другой:

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

Если выбранный таким образом элемент вставлен в одно место в другом месте DOM, он будет перемещен в цель (не клонирован) и возвращается новый набор, состоящий из вставленного элемента:

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

Однако, если существует более одного целевого элемента, клонированные копии вставленного элемента будут созданы для каждой цели, кроме последний, и этот новый набор (исходный элемент плюс клоны) возвращается.

0 голосов
/ 30 мая 2020

Согласно комментарию @Andreas ниже, похоже, что метод domManip может клонировать узлы при соблюдении правильных условий. 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 );
            }
        } );
    },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...