首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在jQuery中替换元素并返回新元素

在jQuery中替换元素并返回新元素
EN

Stack Overflow用户
提问于 2009-05-21 13:11:21
回答 7查看 20.5K关注 0票数 24

如何替换jQuery中的元素,并返回替换元素而不是被删除的元素?

我有以下场景。我有很多复选框,一旦你点击其中一个,这个复选框就会被一个加载图标所取代。一旦发生了一些AJAX事件,加载图标就会被一个勾号图标所取代。

使用jQuery的replaceWith,你可以这样做:

代码语言:javascript
运行
复制
$("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将永远留在那里。

有没有什么方法可以在不选择替换元素的情况下返回它?

提前谢谢。

EN

Stack Overflow用户

发布于 2009-05-21 13:16:06

你可以使用索引给它一个唯一的id:

代码语言:javascript
运行
复制
$("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'/>"); 

});
票数 2
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/892861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档