2

有没有一种方法可以将如下声明持久保存到以后添加到 DOM 的所有匹配元素?

$("a.my-class").replaceWith("<span>Replaced</span>");

类似于...的东西

$("a.my-class").persist().replaceWith("<span>Replaced</span>");

(坚持是一种虚构的方法,我希望传达我想要完成的事情。)

4

2 回答 2

1

没有与您想要的完全一样的方法,但如果使用 jQuery AJAX 方法添加内容,您可以使用以下方法:

$("<div></div>").ajaxSuccess(function(){
   $("a.my-class").replaceWith("<span>Replaced</span>");
});

如果请求是使用 jQuery调用(包括or )发出的,则此代码将在每次成功的 AJAX 请求后运行。您只需要在您的页面上调用一次,它就会在任何 AJAX 调用时触发。$.ajax$.post$.get

如果您因为过早更换而遇到麻烦:

$("<div></div>").ajaxSuccess(function(){
   window.setTimeout( function(){
       $("a.my-class").replaceWith("<span>Replaced</span>");
   }, 250);
});
于 2010-02-11T15:31:18.677 回答
0

jquery 中的live()方法做了类似的事情,但它是针对事件的。

您可以使用 live() 和 load 事件来实现您正在寻找的东西,例如(未经测试):

$("a.my-class").live('load',function(){
  $(this).replaceWith("<span>Replaced</span>");
});
于 2010-02-11T14:46:37.347 回答