var el = $(this); // it's a form
在某一点:
el.replaceWith('<p>Loading...</p>');
之后:
el.replaceWith(output);
显然 el 在第一次替换后不再存在...
我可以以某种方式保留el
新内容吗?
var el = $(this); // it's a form
在某一点:
el.replaceWith('<p>Loading...</p>');
之后:
el.replaceWith(output);
显然 el 在第一次替换后不再存在...
我可以以某种方式保留el
新内容吗?
原件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>');
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