1. ホーム
  2. jquery

[解決済み] jquery .text()または.html()が動作しない

2022-02-17 20:30:47

質問

divを動的に生成して、html()/text()でその内容を変更したいのですが、うまくいきません。

以下はそのコードです。

var div = '<div class="ps_album"><img alt="" src="images/1px.gif" class="thmb"><div class="ps_desc"><h2>title</h2></div></div>';

$(div).find('.ps_desc').html('<h1>Hello</h1>');
$(div).appendTo('body');

で、3行目、すなわち

$(div).find('.ps_desc').html('<h1>Hello</h1>');

動かない...なぜだ?

どうすればいいですか?

を再評価していることが問題なのです。 $(div) . まだ追加されていない DOM フラグメントに対して操作する最初の行は は、"div" の文字列値を更新しない。 . したがって、2回目に作成した $(div) は、元のフラグメントからやり直します。

これを試してみてください。

 $(div).find('.ps_desc').html('<h1>Hello World</h1>').end().appendTo($('body'));

jQueryの .end() メソッドは、直前の .find() この場合、文字列から構築するフラグメントをナビゲーションする元のポイントに戻します。 続く .appendTo() したがって、外側の <div> を作ったので、その べきである 正しいことをする