В IE 8+ и в большинстве новых браузеров.
Используйте document.querySelector
и document.querySelectorAll
.Эти методы позволяют вам получить доступ к любому элементу с помощью селектора, как в css :)
var e = document.querySelectorAll(".myClass"); //
Разница между ними заключается в том, что первый получает первый элемент из сопоставленного элемента, второй метод получает коллекцию сопоставленных элементов.
В демоверсии: 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");