<div>
を使用して作成する方法は 2 つありますjQuery
。
また:
var div = $("<div></div>");
$("#box").append(div);
または:
$("#box").append("<div></div>");
再利用性以外に 2 番目の方法を使用することの欠点は何ですか?
<div>
を使用して作成する方法は 2 つありますjQuery
。
また:
var div = $("<div></div>");
$("#box").append(div);
または:
$("#box").append("<div></div>");
再利用性以外に 2 番目の方法を使用することの欠点は何ですか?
最初のオプションは、より柔軟性があります。
var $div = $("<div>", {id: "foo", "class": "a"});
$div.click(function(){ /* ... */ });
$("#box").append($div);
もちろん.html('*')
、コンテンツを上書きしますが、上書きし.append('*')
ませんが、これはあなたの質問ではなかったと思います。
もう1つの良い習慣は、jQuery変数の前に$
:を付けることです。jQueryで変数とともに
$を使用することの背後にある特定の理由はありますか?
プロパティ名を引用符で囲むと、"class"
柔軟性の低いブラウザとの互換性が高まります。
個人的には、コードがパフォーマンスよりも読みやすく編集可能であることが重要だと思います。どちらが見やすく、上記の要因から選択する必要があります。次のように記述できます。
$('#box').append(
$('<div/>')
.attr("id", "newDiv1")
.addClass("newDiv purple bloated")
.append("<span/>")
.text("hello world")
);
そして、あなたの最初のメソッドとして:
// create an element with an object literal, defining properties
var $e = $("<div>", {id: "newDiv1", name: 'test', class: "aClass"});
$e.click(function(){ /* ... */ });
// add the element to the body
$("#box").append($e);
しかし、可読性に関する限り。jQuery のアプローチは私のお気に入りです。この役立つ jQuery のトリック、メモ、およびベスト プラクティスに従ってください
もっと表現力豊かに、
jQuery('<div/>', {
"id": 'foo',
"name": 'mainDiv',
"class": 'wrapper',
"click": function() {
jQuery(this).toggleClass("test");
}}).appendTo('selector');
参考:ドキュメント
jQueryを使用して実際に要素を構築する最初のオプションをお勧めします。2番目のアプローチは、要素のinnerHTMLプロパティを文字列に設定するだけです。文字列はたまたまHTMLであり、エラーが発生しやすく、柔軟性が低くなります。
#box
空の場合は何もありませんが、そうでない場合は、これらは非常に異なることを行います。前者はdiv
、の最後の子ノードとしてを追加します#box
。後者は、の内容を#box
単一の空div
のテキストとすべてに完全に置き換えます。