我正在编写一个脚本,用jQuery中的div替换一些图像。我目前正在使用replaceWith()
方法,它工作正常,但返回原始(已删除)元素而不是新元素。
.replaceWith()方法,和大多数人一样 jQuery方法,返回jQuery 对象,以便其他方法可以 链在上面。但是,它一定是 注意到原始的 jQuery对象 退回。这个对象指的是 已从中移除的元素 DOM,而不是具有的新元素 取而代之。
如何获得刚刚创建的新DOM元素的引用?
答案 0 :(得分:45)
$.fn.replaceWithPush = function(a) {
var $a = $(a);
this.replaceWith($a);
return $a;
};
答案 1 :(得分:18)
我相信replaceAll()会返回新内容。它的目标和来源与replaceWith()相反。
var newobj = $( "<p>New paragraph" ).replaceAll( "#replaceme" );
答案 2 :(得分:0)
使用jQuery调用调用replaceWith()以查找父节点,然后使用父节点查找使用replaceWith()函数插入的新节点。
以下是$ .ajax()函数成功处理程序中替换表单的示例:
success: function(data,textStatus,jqXHR){
var $li=$form.parents('li');
$form.replaceWith(data);
var $form=$li.find('form');
//...
},
在这个例子中,每个li都有一个独特的形式。您可能需要根据构建DOM的方式来定制方法。