を<div>
使用して作成する方法は2つありますjQuery
。
どちらか:
var div = $("<div></div>");
$("#box").append(div);
または:
$("#box").append("<div></div>");
再利用性以外の2番目の方法を使用する場合の欠点は何ですか?
.html
、.append
2番目のケースではないのですか?
を<div>
使用して作成する方法は2つありますjQuery
。
どちらか:
var div = $("<div></div>");
$("#box").append(div);
または:
$("#box").append("<div></div>");
再利用性以外の2番目の方法を使用する場合の欠点は何ですか?
.html
、.append
2番目のケースではないのですか?
回答:
最初のオプションでは、柔軟性が向上します。
var $div = $("<div>", {id: "foo", "class": "a"});
$div.click(function(){ /* ... */ });
$("#box").append($div);
もちろん.html('*')
、コンテンツ.append('*')
はオーバーライドされませんが、オーバーライドされますが、これはあなたの質問ではなかったと思います。
もう一つの良い練習であなたのjQuery変数を前置さ$
:
jQueryの変数と$を使用しての背後にある任意の特定の理由があります
"class"
プロパティ名を引用符で囲むと、柔軟性の低いブラウザとの互換性が高まります。
$
」で始めるのもよいと思います。あなたがやったことは必要ないことを注意してください$div
:$("<div>", {id: 'foo', class: 'a', click: function () {}}).appendTo("#box");
$div
。その構文は以前に見たことがありませんが、Jqueryは初めてです。
$("<div>", {id: "foo", class: "a"});
。他のオプションがあるかどうかを知りたい
個人的には、パフォーマンスよりもコードを読みやすく編集可能にすることが重要だと思います。どちらが見やすく、上記の要因で選択したものでなければなりません。あなたはそれを次のように書くことができます:
$('#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');
リファレンス:ドキュメント
class
(上記のドキュメントリンクを介して)ドキュメントによれば、引用符で囲む必要があります。「名前「クラス」はJavaScriptの予約語であるため、オブジェクト内で引用する必要があります。「className」はDOMプロパティを参照するため使用できません。 、属性ではありません。」
HTML要素を作成する$("<div/>")
か$("<div></div>")
、推奨されます。
次に、あなたがいずれかを使用することができappendTo
、append
、before
、after
およびなど、。新しい要素をDOMに挿入します。
PS:jQueryバージョン1.11.x
3.4のドキュメントによると、attr()
メソッドで属性を使用することをお勧めします。
$('<div></div>').attr(
{
id: 'some dynanmic|static id',
"class": 'some dynanmic|static class'
}
).click(function() {
$( "span", this ).addClass( "bar" ); // example from the docs
});
class
、引用符で、これは黙って失敗し、狂気になることがあります。
jQueryを使用して要素を実際に構築する最初のオプションをお勧めします。2番目のアプローチは、要素のinnerHTMLプロパティを文字列に設定するだけです。これはたまたまHTMLであり、エラーが発生しやすく、柔軟性が低くなります。
次の方法でdiv要素を作成することもできます。
var my_div = document.createElement('div');
クラスを追加
my_div.classList.add('col-10');
また、実行することができますappend()
し、appendChild()