リスト、表組みなどのマークアップをサポートするjQueryプラグイン jquery.alternation.js

標準

今回はリストや表組みで交互に色を変えるなど、スタイルを適用するときに便利なjQueryプラグインをご紹介します。

jquery.alternation.js [ダウンロード]

HTMLで以下のようなリストがあったとき、リストを見やすくするため交互に背景色をつける場合は、背景色をつける要素になんらかのスタイルクラスを与え、そのスタイルクラスに対して背景色を指定する方法があります。

<ul>
		<li>リンゴ</li>
		<li>バナナ</li>
		<li>ミカン</li>
		<li>イチゴ</li>
</ul>

背景色をつける要素にalterクラスを指定

<ul>
		<li>リンゴ</li>
		<li class="alter">バナナ</li>
		<li>ミカン</li>
		<li class="alter">イチゴ</li>
</ul>

CSSは下記のように指定します。

ul li {
		/* 通常のリストの指定 */
}
ul li.alter {
		/* 背景色を薄い灰色にする */
		background-color: #e6e6e6;
}

しかし、この方法を手動で行うと項目の数が増えた場合、HTMLのマークアップが煩雑になります。また、項目の追加や削除があった場合の作業も、考えただけでイヤになります。

そこで、本jQueryプラグインの出番です。

使い方は、jQuery本体を読み込んだ後に、本プラグインを読み込ませて、document.readyイベントあたりでプラグインを実行するだけです。

<script type="text/javascript" src="js/jquery-1.3.2.min.js" charset="utf-8"></script>
<script type="text/javascript" src="js/jquery.alternation.js" charset="utf-8"></script>
<script type="text/javascript">
//<![CDATA[
$(document).ready(function(){
    $.alternation();
});
//]]>
</script>

これで、alternationクラスが指定されている要素の子要素に対して交互にalterクラスが適用されます。
下記のリストであれば、

適用前:

<ul class="alternation">
		<li>リンゴ</li>
		<li>バナナ</li>
		<li>ミカン</li>
		<li>イチゴ</li>
</ul>

適用後:

<ul class="alternation">
		<li>リンゴ</li>
		<li class="alter">バナナ</li>
		<li>ミカン</li>
		<li class="alter">イチゴ</li>
</ul>

のように、マークアップされます。

オプション

以下のようにオプションが指定可能です。

$.alternation( {
	selector: '.alternation',	// 適用する親要素を指定するセレクタ
	classname: 'alter',			// 該当する子要素に付与するスタイルクラス名
	each: 2,						// 何要素毎に適用するか (4であれば4つ目の要素毎に適用
	callback: function(element){} // 該当したときに実行されるコールバック関数、引数はHTMLエレメント
} );

また、特定のセレクタのみに適用したい場合は以下の書式も可能です。

$('#someid').alteration(); // id="someid"の子要素に適用

追記
上記プラグインは、jQuery標準の :nth-child セレクタで代替え可能です。

// 2, 4, 6 .. 偶数番目の要素に.alterクラスを適用
$('.alternation:nth-child(even)').addClass('alter');
// 1, 3, 5 .. 奇数番目の各要素に処理を適用
$('.alternation:nth-child(odd)').each(function(){ /* 個々の要素への何らかの処理 */ });
// 3番目毎の各要素に処理を適用
$('.alternation:nth-child(3n)').each(function(){ /* 個々の要素への何らかの処理 */ });

本プラグインの使い方等、ご質問があればコメントを入れていただくか、 twitterにて@nojimage宛につぶやいていただければ、たぶんご返答いたします。

One Comment

  1. Pingback: マークアップ補助用 jquery プラグイン2種 @ php-tips

コメントを残す

Page optimized by WP Minify WordPress Plugin