Подтвердить что ты не робот

JQuery replaceWith найти новый элемент

Я пишу script, чтобы заменить некоторые изображения на div в jQuery. В настоящее время я использую метод replaceWith(), который отлично работает, но возвращает новый (удаленный) элемент вместо нового элемента.

Метод .replaceWith(), как и большинство jQuery, возвращает jQuery объект, чтобы другие методы могли быть прикованный к нему. Однако это должно быть отметил, что исходный объект jQuery возвращается. Этот объект относится к элемент, который был удален из DOM, а не новый элемент, который заменил его.

Как я могу получить ссылку на новый элемент DOM, который я только что создал?

4b9b3361

Ответ 2

Я верю, что replaceAll() возвращает новое содержимое. Он имеет цель и исходный код обращен от replaceWith().

var newobj = $( "<p>New paragraph" ).replaceAll( "#replaceme" );

Ответ 3

Приобретите свой вызов replaceWith() вызовом jQuery, чтобы найти родительский node, а затем используйте родительский элемент, чтобы найти новый node, который был вставлен с помощью функции replaceWith().

Вот пример внутри обработчика успеха функции $.ajax(), который заменяет форму:

success: function(data,textStatus,jqXHR){
    var $li=$form.parents('li');        
    $form.replaceWith(data);
    var $form=$li.find('form');
    //...
},

В этом примере для каждого li была уникальная форма. Возможно, вам придется адаптировать свой подход в зависимости от того, как вы создаете свой DOM.