アド企画 制作部
アド企画 制作部
 

jQueryのエレメントにユニークな識別名をつける

jQueryのエレメントにユニークな識別名をつける

jQueryでフォームなどをチマチマといじくっている時に、
「jQueryの各エレメントに一意の識別名をつける方法がないものか…?」
と考えて、ユニークな識別名を生成するfunctionを作ってみました。

jQueryのエレメントにユニークな識別名をつけるfunction


//jQueryのエレメントにユニークな識別名をつけるfunction 
function get_index_id(el){
	var return_val = false;
	if(el instanceof jQuery){
		//「INPUT」などのタグ名を取得
		var tagname_str = el.prop("tagName");
		if(typeof tagname_str == "string"){
			//bodyタグの何番目の要素かINDEX番号を取得
			var index_id = jQuery("body " + tagname_str).index(el);
			if(typeof index_id == "number" && index_id >= 0){
				//タグ名とINDEX番号を合わせて、識別名を生成
				return_val = tagname_str + "_" + index_id;
			}
		}
	}
	if(typeof return_val == "string"){
		//生成した識別名を返す
		return return_val;
	}else{
		//何かうまく取得できなかった場合はfalseを返す
		return false;
	}
}

つまり、タグ名とjQuery("body")の中でのインデックス番号をつないで識別名にしています。

主に連想配列(ハッシュ)のグローバル変数を用意して、この識別名をキー名に使って、各エレメントの個別の設定値を管理したりする時に使ってます。

個人的にはタグ名はすべて小文字で書いているので、
jQuery(this).prop("tagName")
で得られるタグ名が大文字ってのが、個人的には何か気に入りません。