如何替换jQuery中的元素,并返回替换元素而不是被删除的元素?
我有以下场景。我有很多复选框,一旦你点击其中一个,这个复选框就会被一个加载图标所取代。一旦发生了一些AJAX事件,加载图标就会被一个勾号图标所取代。
使用jQuery的replaceWith,你可以这样做:
$("input[type='checkbox']").click(function() {
$(this).replaceWith("<img src='loading.jpg' alt='loading'/>");
$.post("somepage.php");
$(this).replaceWith("<img src='tick.jpg' alt='done'/>");
});但是,这并不起作用,因为replaceWith返回的是被删除的元素,而不是添加的元素。因此,在AJAX完成之后,loading.jpg将永远留在那里。
有没有什么方法可以在不选择替换元素的情况下返回它?
提前谢谢。
发布于 2009-05-21 13:16:06
你可以使用索引给它一个唯一的id:
$("input[type='checkbox']").click(function() {
var index = $("input[type='checkbox']").index(this);
$(this).replaceWith("<img src='loading.jpg' id='myLoadingImage" + index + "' alt='loading'/>");
$.post("somepage.php");
$('#myLoadingImage'+index).replaceWith("<img src='tick.jpg' alt='done'/>");
});https://stackoverflow.com/questions/892861
复制相似问题