このページの目次

ol 要素 の子(li 要素)に連番クラスをつける

概要

全ての ol 要素の子要素となる li 要素の class 属性値に orderN を追加します。N は 1 から始まる整数です。

動作確認用の demo

ダウンロード

説明

このスクリプトを使用するとページの読み込みが完了した時点で、

<ol>
 <li>text</li>
 <li>text</li>
 <li>text
   <ol>
    <li>text</li>
    <li>text</li>
    <li>text</li>
    <li>text</li>
   </ol>
  </li>
 <li>text</li>
</ol>

のようなソースは

<ol>
 <li class="order1">text</li>
 <li class="order2">text</li>
 <li class="order3">text
  <ol>
    <li class="order1">text</li>
    <li class="order2">text</li>
    <li class="order3">text</li>
    <li class="order4">text</li>
  </ol>
 </li>
 <li class="order4">text</li>
</ol>

といった具合に自動で連番の class 属性値が追加されます。あらかじめ、CSS ファイルで order1 から orderN までのスタイルを書いておけばそれが反映されます。また ol ol .order1 から ol ol .orderN のように入れ子になったケースのスタイルを書いておけば、それも反映されます。

ソースコード

/*
 Author : http://www.yomotsu.net
 created: 2006/12/23
 Licensed under the GNU Lesser General Public License version 2.1
 
 olの子(li)に連番クラスをつける
*/

/* ordered classes for list item
----------------------------------------*/
function yomotsuOrderedClass() {
	for (var i = 0; i <document.getElementsByTagName("ol").length; i++) {
		var listnum = 1;
		for (var j = 0; j <document.getElementsByTagName("ol")[i].childNodes.length; j++) {
			if(document.getElementsByTagName("ol")[i].childNodes[j].nodeName == "LI"){
				document.getElementsByTagName("ol")[i].childNodes[j].className += " order"+listnum;
				listnum ++;
			}
		}
	}			
}

addEvent(window, 'load', yomotsuOrderedClass);

/* add event
----------------------------------------*/

function addEvent(obj, evType, fn){
	if (obj.addEventListener){
		obj.addEventListener(evType, fn, false);
		return true;
	}
	else if (obj.attachEvent){
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	}
	else {
		return false;
	}
}


トラックバックURI

http://www.yomotsu.net/lab/javascripts/orderedclass/trackback

この記事へのコメントはまだありません

コメントフォーム

コメント

コメントでは一部の XHTML タグを使用できます。 : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

実験室に戻る

著作権情報等

Copyright © 2004-2008 yomotsu-net. Some Rights Reserved.