JQuery: append vs appendTo

Я тестирую JQuery.append vs .appendTo, используя следующий код:

$('div/>',{
    id : id,
    text : $(this).text()
    }).appendTo('div[type|="item"]#'+id);
$('div[type|="item"]#'+id).append($(this).text());

Обратите внимание, что селектор идентичен в .appendTo и .append, но последний работает (на той же странице), а первый - нет. Зачем? Как мне получить .appendTo работать с этим типом (сложным) селектором? Различают ли эти два метода по-разному? Есть ли какой-то синтаксис, который мне не хватает?

Я не хочу загромождать сообщение с дерзким кодом - достаточно сказать, что существуют элементы, на которые ссылаются селекторы, о чем свидетельствует метод .append, создающий желаемый результат - сообщите мне, нужна ли дополнительная информация.

Спасибо!

Ответы

Ответ 1

Чтобы ответить на вопрос, у вас нет элемента для appendTo ничего, поскольку вам не хватает символов

это

$('div/>',{});

должно быть

$('<div/>',{});

чтобы создать элемент, иначе он сделает именно то, что вы говорите, ничего!


В противном случае у вас, похоже, порядок вещей, вот так:

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

$(Append_To_This).append(The_Content_Given_Here);

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

$(The_Content_Given_Here).appendTo(Append_To_This);

Там также .prepend() и prependTo() который работает точно так же, с той лишь разницей, что добавленные элементы добавляются в начале содержимого целевых элементов, а не в конец.

Ответ 2

append добавляет параметр к объекту, над которым вы работаете.

appendTo добавляет объект, над которым вы работаете, с параметром.

Дополнительная информация здесь: http://api.jquery.com/appendTo/

кроме этого, здесь что-то не так:

$('div/>',

это ничего не выбирает.

Ответ 3

Я столкнулся с похожим запросом, и при исследовании получили еще больше информации. Сложно было слышать цель, элемент и т.д., И я предпочитаю визуализировать внешний селектор как $container и элемент, добавленный как $widget. В простом английском я хочу добавить виджет в контейнер. Оба append и appendTo могут использоваться следующим образом, и вы получаете точный результат.

$container = $("#containerdiv");

$widget = $("<div> <h1 id='title'> widget </h1> </div>")

Подход 1: $container.append($widget)

Подход 2: $widget.appendTo($container)

Ключевое различие - это то, что возвращается. В первом случае возвращается $container, а во втором случае возвращается $widget. Это будет полезно, если вы связываете запрос с другим оператором jquery. Если вы хотите работать с $container, используйте первую конструкцию и работайте с виджетами, используйте второй способ. Например,

если вы хотите добавить в контейнер 2 виджета, вы должны указать

$container.append($widget1).append($widget2)

и если вы хотите добавить виджет, а затем название виджета, чтобы сказать "Cool Widget", вы должны указать

$widget.appendTo($container).find('#title').text("Cool Widget")

Ответ 4

Метод .append() вставляет указанный контент как последний ребенок каждого элемента в jQuery collection (Чтобы вставить его в качестве первого ребенка, используйте .prepend()).

Методы .append() и .appendTo() выполняют одну и ту же задачу. Основное различие заключается в синтаксисе, при размещении контента и цели. При .append() выражение селектора предшествующий методу, является контейнером, в который вставлен контент. С .appendTo(), на с другой стороны, содержимое предшествует методу, либо как выражение селектора, либо как разметка, созданная на летать, и он вставляется в целевой контейнер.

Ответ 5

. Методы .append() и .appendTo() выполняют одну и ту же задачу, и только синтаксис вставляемого содержимого и html-содержимого будет использоваться. перейдите http://api.jquery.com/appendTo/

Ответ 6

$('#someDiv').append(someStuff); someStuff.appendTo($('someDiv')); // тот же результат здесь, просто другой способ сделать это в зависимости от вашего sitch

Ответ 7

Оба метода выполняют одну и ту же задачу. Основное различие -

  • в синтаксисе, в частности,
  • при размещении контента и цели.

С .append() выражение селектора, предшествующее методу, представляет собой контейнер, в который вставлен контент.

С .appendTo(), с другой стороны, содержимое предшествует методу, либо как выражение выбора, либо как разметка, созданная "на лету", и она вставляется в целевой контейнер.

Ответ 8

Сделать это проще для понимания.

Предположим, что у меня есть A B C три упорядоченных чартера.

A append C означает MOVE C до A, это приводит к C reloaction, но не к A, поэтому мы имеем C A B.

A appendTO C означает MOVE A после C, это приводит к перемещению, но не к C, поэтому мы имеем B C A.

  • Оба append и 'appendTo' имеют тот же результат из 甲 и 丙, но меняется весь порядок трех чартеров.
  • В связи с перемещением OOO.appendTo(XXX), XXX должен существовать до этого элемента управления.