jQuery replaceWith查找新元素

问题描述

| 我正在编写一个脚本,用jQuery中的div替换某些图像。我目前正在使用
replaceWith()
方法,该方法工作正常,但返回的是原始(已删除)元素,而不是新元素。   .replaceWith()方法,就像大多数方法一样   jQuery方法,返回jQuery   对象,以便可以使用其他方法   拴在上面。但是,必须   注意到原始的jQuery对象   返回。该对象是指   已从中删除的元素   DOM,而不是具有   取代了它。 如何获得对我刚刚创建的新DOM元素的引用?     

解决方法

$.fn.replaceWithPush = function(a) {
    var $a = $(a);

    this.replaceWith($a);
    return $a;
};
查看工作演示     ,我相信replaceAll()返回新内容。它的目标和源都与replaceWith()相反。
var newobj = $( \"<p>New paragraph\" ).replaceAll( \"#replaceme\" );
    ,在您对replaceWith()的调用之前,先使用jQuery调用来查找父节点,然后使用父级来查找使用replaceWith()函数插入的新节点。 这是一个$ .ajax()函数的成功处理函数内的示例,该函数替换表单:
success: function(data,textStatus,jqXHR){
    var $li=$form.parents(\'li\');        
    $form.replaceWith(data);
    var $form=$li.find(\'form\');
    //...
},
在此示例中,每个li有一个唯一的形式。您可能需要根据构造DOM的方式来调整方法。