2012-04-29 15 views
5

javascriptで同じクラス名を使用するすべての要素を選択するにはどうすればいいですか?私はdocument.getElementsByClassNameを使用してそれを行うことができると知っていますが、クロスブラウザーではないので、jQueryや他のライブラリーを使わずにクラス名に応じて要素を選択する適切な方法は何ですか?クロスブラウザクラス名で要素を選択する

ありがとうございます!

+2

は私を信じますか? q = select + by + class + name + javascript – Matt

+1

@Raj [querySelectorAll()](https://developer.mozilla.org/ja/DOM/Document.querySelectorAll)を試してみると、 'getElement ...() ' – Christoph

答えて

7

私はこのコードを見つけました:

if (!document.getElementsByClassName) { 
    document.getElementsByClassName = function(classname) { 
     var elArray = []; 
     var tmp = document.getElementsByTagName("*"); 
     var regex = new RegExp("(^|\\s)" + classname + "(\\s|$)"); 
     for (var i = 0; i < tmp.length; i++) { 

      if (regex.test(tmp[i].className)) { 
       elArray.push(tmp[i]); 
      } 
     } 

     return elArray; 
    }; 
}​ 

Here

1

はこちらを参照してください。

Support for getElementsByClassName

私はquerySelectorを使用することをお勧めします。より自然で、jQuery構文にかなり近いので、ほとんどのpplに共通しています。また、かなり高速で、クラス、IDなどを区別する必要はありません。

IE <をサポートしたい場合は、gdoronのようなシムが必要です。

+0

これもとても素敵です、ありがとうございます。 –