IE 8+ およびほとんどの新しいブラウザー。
とを使用document.querySelector
しdocument.querySelectorAll
ます。これらのメソッドを使用すると、css のようにセレクターによって任意の要素にアクセスできます:)
var e = document.querySelectorAll(".myClass"); //
それらの違いは、最初に一致した要素から最初の要素を取得し、2番目の方法で一致した要素のコレクションを取得することです。
デモ: http://jsfiddle.net/f9cHr/ ドキュメントをクリックして、要素の色を変更します。
そしていま:
getElementsByClassName = function( className , ctx ) {
var context = ctx ? ( typeof ctx =="string" ? document.querySelector( ctx ) : ctx ): document;
return context.querySelectorAll && context.querySelectorAll( "." + className )
};
この関数は、querySelector の関数が存在する場合に使用できます
if( document.querySelector && document.querySelectorAll ) {
//getElementsByClassName = function from above here
} else {
//getElementsByClassName = function you are using here
}
使用する:
var myClassInnerMyId =
getElementsByClassName( "myClass" , document.getElementById( "myId") );
// = document.querySelectorAll( "#myId .myClass");
また
someClassesInnerOtherId = getElementsByClassName( "myClass1,myClass2" , "#otherId");
// = document.querySelectorAll( "#otherId myClass1, #otherId myClass2");