使用jQuery删除第二个表单元素而不丢失子元素

时间:2009-01-21 16:18:50

标签: javascript jquery

我有一些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 个答案:

答案 0 :(得分:6)

您应该移动子节点,而不是使用.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();

答案 1 :(得分:2)

如果你有这样的ajax代码:

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

    }
});

您可以添加success功能:

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

通过这种方式,您可以从该页面中提取任何内容:)

答案 2 :(得分:1)

你的问题仍然存在,但是现在有更好的答案。

  1. unwrap方法:http://api.jquery.com/unwrap/
  2. $element.replaceWith($element.contents());