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")
で得られるタグ名が大文字ってのが、個人的には何か気に入りません。
