Использование jQuery для удаления второго элемента формы без потери дочерних элементов - PullRequest
2 голосов
/ 21 января 2009

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

Любая помощь будет высоко ценится

РЕДАКТИРОВАТЬ: Спасибо за быстрые ответы, вот то, что я на самом деле использовал, и это прекрасно работает

            // Captures the children
            var children = $("form:eq(1)").children();
            // Removes the form
            $("form:eq(1)").remove();
            // append the child elements back into the DOM 
            $("#fillDiv").append(children);

Ответы [ 3 ]

6 голосов
/ 21 января 2009

Вместо использования метода .html() (который приведет к потере любых событий, связанных с элементами формы), вам следует переместить дочерние узлы:

// grab the child nodes
var children = $('#badForm').children();
// or var children = $('#badForm > *');

// move them to the body
$(body).append(children);

// remove the form
$('#badForm').remove();
2 голосов
/ 21 января 2009

Если у вас есть код Ajax, подобный этому:

$.ajax({
    type: "get",
    url: "url",
    data: ,
    cache: false,
    success: function(data){

    }
});

Вы можете добавить success функцию этого:

$(data).find('#whatYouNeed').appendTo('#whereYouNeed')

Таким образом, вы можете извлечь что угодно из этой страницы:)

1 голос
/ 25 октября 2011

Ваш вопрос все еще актуален, однако в наши дни есть лучшие ответы.

  1. unwrap метод: http://api.jquery.com/unwrap/
  2. $element.replaceWith($element.contents());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...