JavaScript ライブラリ "jQuery"

2011年10月 1日

カテゴリー:CODING technic

最近のwebサイトはコンテンツのアニメーション、ajaxのようにjavascriptを使用する場面が多々あります。またデザインが複雑な場合、cssでは対応できないような場合があります。
そこでお世話になっているのが、javascriptライブラリ『jquery』。

・cssの理解があると学習しやすい
・構文が直感的で解りやすい
・クロスブラウザ対応・プラグインが豊富

等の理由で人気のライブラリですが、ホントに便利です。

●class名"text"のノードのcssを操作したい場合

<p class="text">サンプルテキスト</p>

●テキスト色を変更したい

$(".text").css("color","#ff0000");

●複数指定も

$(".text").css({
	color: "#ff0000",
	marginleft: "20px"});

●上の操作をclass"color"の追加で処理したい場合も

$(".text").addclass("color");

といった具合に簡単に操作できます。
記述が簡単になる理由の一つにcssセレクタによるdomエレメントの選択があります。
$("selector")のselectorの部分にcssのセレクタを記述するだけでdomエレメントを選択できます。
また、css3のセレクタや独自のセレクタもあり効率的・直感的です。

選択だけでなく操作系の関数も充実していますのでネイティブのJavaScriptではホワイトスペースノード等のブラウザ非互換の問題があってDOMツリーの操作だけでも骨を折っていた事が容易に実現できます。例えば、

●次に来る兄弟要素のテキスト色を変更

$(".text").next().css("color","#FF0000");

●次に来る兄弟要素のテキストを変更

$(".text").next().text("sample text");

●カスケードで記述できるのでどんどん繋げて記述できます。

$(".text")
	.next()
		.css("color","#FF0000")
		.text("sample text")
		.addClass("color")
	.end()
	.addClass("color")
	.fadeOut("slow");

プラグインとして独自に機能を追加することも、豊富なプラグインを利用することも可能です。
他にもエフェクト・イベント・Ajax...と機能盛りだくさんなjQuery。ネイティブのJavaScriptで全てのブラウザに気を使いながら記述していくなんて考えられなくなります。
そこで、弊社では自作の汎用プラグインを活用し効率化しています。
例えば...

・ページのURLを判定してナビゲーションをカレント状態にする
・画像をJavaScriptでリサイズ・トリミング
・リスト表示でアイコン分のインデントの幅を揃える

などなど...。今後もjQueryプラグインを充実させて更なる効率化を図りたいと思っています。