[解決済み】jQuery .html() vs .append()
質問
空のdivがあるとします。
<div id='myDiv'></div>
これですか。
$('#myDiv').html("<div id='mySecondDiv'></div>");
と同じです。
var mySecondDiv=$("<div id='mySecondDiv'></div>");
$('#myDiv').append(mySecondDiv);
解決方法は?
jQueryのメソッドにHTMLの文字列を渡すと、必ずこのような現象が起こります。
一時的な要素が作成され、それをxと呼ぶことにする。
innerHTML
には、渡したHTMLの文字列がセットされる。次にjQueryは、生成された各ノード(つまり、xの
childNodes
を新しく作成したドキュメントフラグメントに移し、次回以降のためにキャッシュします。そして、そのフラグメントの
childNodes
を新しい DOM コレクションとして提供します。
jQueryはクロスブラウザチェックや様々な最適化を行っているため、実際にはもっと複雑であることに注意してください。たとえば、単に
<div></div>
を
jQuery()
を実行すると、jQueryはショートカットして、単に
document.createElement('div')
.
EDIT : jQueryが実行する膨大な量のチェックを見るには、以下を参照してください。 こちら , こちら そして こちら .
innerHTML
は
おおむね
の方が高速に処理できますが、常にこの方法で処理するわけではありません。
element.innerHTML = ...
-- 前述したように、多くのチェックと最適化が行われています。
正しいテクニックは、状況によって大きく異なります。同じ要素を大量に作りたい場合、一番避けたいのは、反復するたびに新しいjQueryオブジェクトを作成する大規模なループを作成することです。例:jQueryで100個のdivを作成する最速の方法。
jQuery(Array(101).join('<div></div>'));
また、読みやすさやメンテナンスの問題も考慮する必要があります。
これです。
$('<div id="' + someID + '" class="foobar">' + content + '</div>');
... は たくさん これよりメンテナンスが大変です。
$('<div/>', {
id: someID,
className: 'foobar',
html: content
});
関連
-
[解決済み】ある要素を別の要素に移動させるには?
-
[解決済み】divの高さを画面の残りスペースで埋めるようにする
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] jQueryでチェックボックスに "checked "を設定する
-
[解決済み] CSSでcellpaddingとcellspacingを設定する?
-
[解決済み] jQueryの「exists」関数はありますか?
-
[解決済み] どのラジオボタンが選択されているかをjQueryで知るにはどうしたらよいですか?
-
[解決済み] jQueryを使用しない$(document).ready相当
-
[解決済み】なぜHTMLは "chucknorris "を色と見なすのか?
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「Missing required request header」を修正する方法。origin,x-requested-withのいずれかを指定する必要があります' Ajax Error
-
[解決済み] Foundation Revealモーダルjavascriptを開く方法
-
[解決済み] .NET 4.5のMSAjaxとWebFormsJSのドキュメントはどこにあるのでしょうか?
-
[解決済み] jQueryで文字色を変更するにはどうすればよいですか?
-
[解決済み] jQueryで小文字と大文字を使い分ける
-
[解決済み] cssで自動的にシャインエフェクト
-
[解決済み] jquery-rails」と「jquery-ui-rails」は、1つのプロジェクトで管理することができるのでしょうか?
-
[解決済み] 3桁ごとの数字にカンマを追加
-
[解決済み] jQueryを使って下までスクロールさせる
-
[解決済み] jQueryセレクタの直下型(>)と子孫型の違いは何ですか?