jQueryを使用した$ .load()の後、DOMにないのですか?
質問
var id = 'test';
var dom = $('#loader').clone().load("Views/chatBox.html");
dom.find('span.bn').text(id);
chatBox.htmlには、次のものがあります:
...
<span class="bn">AAA</span>
...
「AAA」を置き換えたい&quot; test&quot;で失敗しました(dom.findで取得できません)。つまり、すぐに利用できません。
正しい方法は?
解決
返された要素を操作する場合は、コールバック関数で行う必要があります。これは、HTMLの取得が非同期で行われ、リクエストが終了して要素が挿入されるとコールバック関数が実行されるためですDOM:
var id = 'test';
$('#loader').load("Views/chatBox.html", function () {
$('span.bn', this).text(id);
});
また、あなたの例では、#loader要素をクローンしており、要素はまだDOMにありません。挿入する必要がありますが、本当に要素を複製するかどうかはわかりません...
所属していません StackOverflow