2012-04-29 15 views
5

Jak wybrać wszystkie elementy, używając tej samej nazwy klasy w javascript. Wiem, że mogę to zrobić za pomocą document.getElementsByClassName, ale czytałem gdzieś, że nie jest to przeglądarka, więc jeśli jest prawdą, jaki jest właściwy sposób wybierania elementów w zależności od nazwy klasy bez jQuery lub innej biblioteki.Przeglądarka krzyżowa Wybieranie elementów według nazwy klasy

Dzięki!

+2

uwierz mi, kiedy mówię, że nie jesteś pierwszą osobą, aby zadać to pytanie ... http://www.google.co.uk/search? q = select + by + class + name + javascript – Matt

+1

@Raj dać [querySelectorAll()] (https://developer.mozilla.org/en/DOM/Document.querySelectorAll) spróbować, to jest lepsze i bardziej elastyczne niż 'getElement ...() ' – Christoph

Odpowiedz

7

znalazłem ten kod:

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

zobaczyć tutaj:

Support for getElementsByClassName

Polecam używanie querySelector. Jest bardziej naturalny i dość zbliżony do składni jQuery, a więc bardziej powszechny dla większości osób. Jest również dość szybki i nie trzeba rozróżniać klas, identyfikatorów ani innych elementów.

Jeśli chcesz obsłużyć IE < 7, potrzebujesz podkładki podobnej do gdoronu.

+0

To również bardzo miłe, dziękuję. –

Powiązane problemy