jQuery replaceWith找到新元素

时间:2011-05-25 02:02:48

标签: javascript jquery

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

  

.replaceWith()方法,和大多数人一样   jQuery方法,返回jQuery   对象,以便其他方法可以   链在上面。但是,它一定是   注意到原始的 jQuery对象   退回。这个对象指的是   已从中移除的元素   DOM,而不是具有的新元素   取而代之。

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

3 个答案:

答案 0 :(得分:45)

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

    this.replaceWith($a);
    return $a;
};

See a working demo

答案 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的方式来定制方法。