有没有一种方法可以将如下声明持久保存到以后添加到 DOM 的所有匹配元素?
$("a.my-class").replaceWith("<span>Replaced</span>");
类似于...的东西
$("a.my-class").persist().replaceWith("<span>Replaced</span>");
(坚持是一种虚构的方法,我希望传达我想要完成的事情。)
没有与您想要的完全一样的方法,但如果使用 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);
});
jquery 中的live()方法做了类似的事情,但它是针对事件的。
您可以使用 live() 和 load 事件来实现您正在寻找的东西,例如(未经测试):
$("a.my-class").live('load',function(){
$(this).replaceWith("<span>Replaced</span>");
});