2
var el = $(this); // it's a form

在某一点:

el.replaceWith('<p>Loading...</p>');

之后:

el.replaceWith(output);

显然 el 在第一次替换后不再存在...

我可以以某种方式保留el新内容吗?

4

2 回答 2

3

原件el已被删除并替换为replaceWith。使用以下的返回值创建一个新引用replaceWith

var el = $(this); // it's a form
el = el.replaceWith('<p>Loading...</p>');
              //`el.replaceWith()` returns the new element
el = el.replaceWith(output);

如果您打算用新元素替换内部内容,同时保留表单,请使用:

el.html(""); //Clear html
el.append('<p>Loading...</p>');
于 2011-10-28T15:08:42.487 回答
1

jquery 的 replaceWith 返回被替换的元素,而不是新元素

http://api.jquery.com/replaceAll/

你应该这样做:

var el = $(this); // it's a form
var $p = $('<p>Loading...</p>');

el.replaceWith($p);

// now el is unhooked from the dom, that is el.parent() === []
// it is $p who is now hooked, check with $p.parent() === (some node)

//so you should reassing it
el = $p;

// later on

el.replaceWith(output); // but remenber, once again el is unhooked

另外,请务必检查此问题:https ://stackoverflow.com/a/892915/47633

于 2013-02-08T14:46:33.763 回答