我有一些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);
答案 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)
你的问题仍然存在,但是现在有更好的答案。
unwrap
方法:http://api.jquery.com/unwrap/ $element.replaceWith($element.contents());