#javascript #jquery #ajax
#javascript #jquery #ajax
Вопрос:
Я вставляю html перед определенным элементом в ответ на вызов ajax.
Я не вижу недавно вставленный html на странице, но если я просматриваю исходный код, я могу его увидеть.
Я добавляю html в случае успешного выполнения вызова метода $.ajax.
success: function(data) {
$("#some-id").insertBefore(data);
}
Он также не скрыт, поэтому не уверен, что происходит?
Комментарии:
1. Неплохо было бы добавить еще немного кода…
2. является
data
селектором элемента, который находится на странице? Синтаксис дляinsertBefore()
таков$("content").insertBefore("target")
Ответ №1:
(Продолжение моего комментария выше)
Скорее всего, вы хотите:
$("#some-id").before(data);
или:
$(data).insertBefore("#some-id");
Еще немного информации из документации:
Методы .before() и .insertBefore() выполняют ту же задачу. Основное различие заключается в синтаксисе — в частности, в размещении содержимого и целевого объекта. С помощью .before() выражение селектора, предшествующее методу, является контейнером, перед которым вставляется содержимое. С другой стороны, с помощью .insertBefore() содержимое предшествует методу либо как выражение селектора, либо как разметка, созданная на лету, и оно вставляется перед целевым контейнером.
Комментарии:
1. спасибо, я их перепутал. странно, как DOM выглядел нормально, хотя!
Ответ №2:
Если #some-id
его нет в вашем DOM по умолчанию и он вставляется динамически, вам нужно будет добавить его, прежде чем вы сможете использовать insertBefore()