jQuery replaceWith找到新元素

我正在编写一个脚本,用jQuery中的div替换一些图像。 我目前正在使用replaceWith()方法,它工作正常,但返回原始(已删除)元素而不是新元素。

与大多数jQuery方法一样,.replaceWith()方法返回jQuery对象,以便可以将其他方法链接到它上面。 但是,必须注意返回原始 jQuery对象。 此对象引用已从DOM中删除的元素,而不是已替换它的新元素。

如何获得刚刚创建的新DOM元素的引用?

 $.fn.replaceWithPush = function(a) { var $a = $(a); this.replaceWith($a); return $a; }; 

查看工作演示

我相信replaceAll()会返回新内容。 它的目标和源与replaceWith()相反。

 var newobj = $( "

New paragraph" ).replaceAll( "#replaceme" );

在使用jQuery调用之前调用replaceWith()以查找父节点,然后使用父节点查找使用replaceWith()函数插入的新节点。

这是替换表单的$ .ajax()函数的成功处理程序内的示例:

 success: function(data,textStatus,jqXHR){ var $li=$form.parents('li'); $form.replaceWith(data); var $form=$li.find('form'); //... }, 

在这个例子中,每个li都有一个独特的forms。 您可能需要根据构建DOM的方式定制方法。