getElementsByClassNameメソッド

こんにちわ。

イヤはまったというか・・・JS苦手というか・・・

さて、今回タイトルにもあるとおり、
getElementsByClassNameメソッドに関してですが、
結論からいうとIEには利かないんですね。
知らなかったです。

何をしたかったかというと、
単純にsubmitボタンを押したら、押せないようにするというあれです。
簡単に行うとすると、submitのinputタグで、
onClick=”this.disabled = true;javascript:なんかの関数()”
とかにすればいいのですが、
これはあくまでsubmitボタンが1個の場合。
複数、それも動的に発生するボタンの場合で
かつ、特定のクラスのボタンだけ押せないようにするにはどうするのか・・・

上記のgetElementsByClassNameメソッドを
使えばいいじゃんという話になるのですが、
SafariやChrome、Firefoxに関しては各ブラウザが認識しても
IEでは認識しないというらしいのです。

じゃぁ、どうするか。
Classの認識がダメであれば、全タグの要素のリストを使うという方法。
getElementsByTagName(‘*’);
で、アスタリスクを使用するのがワンポイント。

var element_list=document.getElementsByTagName('*');

for (var i=0;i<element_list.length;i++){
	if(element_list[i].className=='なんかのクラス名1' || element_list[i].className=='なんかのクラス名2'){
		element_list[i].disabled=true;
	}
}

これで一件落着。

他にライブラリーを入れてしまうこういう方法もあるようです。

やっぱりJS苦手だわ。