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 должен существовать до этого элемента управления.