1章 jQueryとは?
DOM要素の生成
$ 又はjQueryの基本的な使い方で見たDOM要素の生成機能を見ていきます。とは言え、便宜上この場所に載せていますが、まだ説明していないjQueryのメソッドが出てきますので、一通り読み終えてから、再度このページに戻って来た方が分かりやすいでしょう。
DOM要素の生成
「jQueryの基本」で、DOM要素の生成の説明で、次のようなサンプルを見ました。
jQuery(function ($) {
$("<li>三郎</li>").appendTo("#family");
});
「HTMLのタグの文字列」は、セレクターと間違われないようタグから開始します。そうすることで、DOM要素を生成することができます。そして、その生成されたDOM要素を選択しているjQueryオブジェクトが返されます。 しかし、実際の所、生成されるだけでどこかに自動で挿入される訳ではありません。まだ、宙ぶらりんな状態です。その為、appendToなどのメソッドを使って、どこかに入れ込んであげます。
上記のようにHTMLの中身を含めることもできますが、下記のように単純にタグだけの指定もできます。
jQuery(function ($) {
// 下記の書き方、どれでも可能
$("<a>")
$("<a></a>")
$("<img>")
$("<img />")
// しかし本家サイトでは、互換性の為、中身を取るタグについては、
// 終了タグを付けることを推奨している。
// 中身を取らないタグはどちらでも、OKとしている。
$("<a></a>")
$("<img>")
$("<img />")
});
$("html", attributes )
Ver.1.4からは、第2引数にオブジェクトを指定すると、そのオブジェクトのプロパティは、HTMLの属性として設定されます。
jQuery(function ($) {
$("<a></a>", {
href: "abc.html",
target: "_blank",
"class": "myClass"
});
});
上記を見ると、classのキーだけは、クォーテーションで囲まれていますが、これはclassがJavaScriptの予約後の為、このようにする必要があります。 第2引数を指定するときは、第1引数は、属性など書かれていないシンプルなタグに留めないと行けません。欲張って次のような書き方をすることはできません。
jQuery(function ($) {
$("<a href='bar.html'></a>", {
target: "_blank"
});
});
また、Ver.1.4からは、属性のみに限らず、各種イベントタイプやval, css, html, text, data, width, height, offsetなどのjQueryメソッドをオブジェクトに含めることができます。 更に言えば、Ver.1.8からは、あらゆるjQueryメソッドを指定することができます。
jQuery(function ($) {
$("<div></div>", {
width: 100,
height: 100,
css: {border: "5px solid gray"},
addClass: "my-div",
on: {
click: function(event) {
// イベント設定
}
}
});
});
もっとも、あまり派手にやると訳が分からなくなりますので、第2引数の使用はある程度限定して、イベントの付与などは、別途生成したjQueryオブジェクトに対して行えば良いでしょう。