こんにちわ。
イヤはまったというか・・・JS苦手というか・・・
さて、今回タイトルにもあるとおり、
getElementsByClassNameメソッドに関してですが、
結論からいうとIEには利かないんですね。
知らなかったです。
何をしたかったかというと、
単純にsubmitボタンを押したら、押せないようにするというあれです。
簡単に行うとすると、submitのinputタグで、
onClick=”this.disabled = true;javascript:なんかの関数()”
とかにすればいいのですが、
これはあくまでsubmitボタンが1個の場合。
複数、それも動的に発生するボタンの場合で
かつ、特定のクラスのボタンだけ押せないようにするにはどうするのか・・・
上記のgetElementsByClassNameメソッドを
使えばいいじゃんという話になるのですが、
SafariやChrome、Firefoxに関しては各ブラウザが認識しても
IEでは認識しないというらしいのです。
じゃぁ、どうするか。
Classの認識がダメであれば、全タグの要素のリストを使うという方法。
getElementsByTagName(‘*’);
で、アスタリスクを使用するのがワンポイント。
1 2 3 4 5 6 7 | 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苦手だわ。