次のような宣言を、後でDOMに追加されるすべての一致する要素に永続化する方法はありますか?
$("a.my-class").replaceWith("<span>Replaced</span>");
線に沿った何か...
$("a.my-class").persist().replaceWith("<span>Replaced</span>");
(Persist は架空のメソッドであり、私が達成したいことを伝えてくれることを願っています。)
必要なものとまったく同じメソッドはありませんが、コンテンツが jQuery AJAX メソッドを使用して追加されている場合は、これを使用できます。
$("<div></div>").ajaxSuccess(function(){
$("a.my-class").replaceWith("<span>Replaced</span>");
});
また、このコードは、要求が jQuery呼び出し (またはを含む)を使用して行われた場合、AJAX 要求が成功するたびに実行されます。これをページで 1 回呼び出すだけで、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>");
});