问题描述
|
我正在编写一个脚本,用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的方式来调整方法。