Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery删除第二个表单元素而不丢失子元素_Javascript_Jquery - Fatal编程技术网

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

Javascript 使用jQuery删除第二个表单元素而不丢失子元素,javascript,jquery,Javascript,Jquery,我做了一些AJAX工作,带来了DOM中不需要的额外表单元素。我没有能力从服务器端删除它,所以我正在寻找一些jQuery或经典JavaScript,它们允许我捕获表单的所有子元素,删除我不需要的表单,最后将子元素重新附加回DOM 任何帮助都将不胜感激 编辑:谢谢你的快速回答,下面是我实际使用的,它工作得很完美 // Captures the children var children = $("form:eq(1)").children();

我做了一些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);

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

如果您有这样的ajax代码:

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

    }
});
您可以添加
success
此功能:

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

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

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

  • 展开
    方法:
  • $element.replaceWith($element.contents())

  • 这肯定比将表单添加到dom中,然后尝试提取其子元素并将其删除要好@Toran,如果您有一个返回html的ajax调用,那么您应该使用此方法。@Toran:这会满足您的要求,但您可能应该使用类似@Staicu的解决方案,而不是将表单添加到dom中,然后尝试删除并留下其子项…@Toran:我的解决方案会满足您的要求,但是您可能应该使用类似@Staicu的解决方案,而不是将表单添加到dom中,然后尝试删除并保留其子元素……我只需要能够轻松地清除子元素id被不可预测地创建的div。我刚刚对您的解决方案使用了一个细微的变化:$(“#containerDiv”).children().remove();我很有钱,我甚至都不知道。谢谢。