2011-12-23 2 views
1

Je ne peux pas faire javascript pour obtenir plus d'un élément avec la classe que je spécifie .. J'utilise des classes sur le but !! Si j'ai 5 divs avec la même classe, comment dois-je les appeler?get Element ID multiple ou CLASSE

onmouseover="document.getElementById('logo').style.display='inline';" 
onmouseout="document.getElementById('logo').style.display='none';" 

onmouseover="document.getElementsByClassName('new')[0].style.MozOpacity=0.4;" 
onmouseout="document.getElementsByClassName('new')[0].style.MozOpacity=1;" 

Et puis-je faire quelque chose comme: .getElementsByClassName('new,new2,new3')

Répondre

1

Si vous êtes en mesure d'utiliser jQuery, je le recommande fortement, il fait des choses triviales:

$('#idOfYourElement') 
    .mouseenter(function() { $('.new, .new2, .new3').css({MozOpacity : 0.4});) 
    .mouseleave(function() { $('.new, .new2, .new3').css({MozOpacity : 1});); 
+0

serait génial, mais cela ne fonctionne pas .. Je suis caling Jquery1.6.1 – user920218

3

Je ne peux pas faire le javascript pour obtenir plus d'un élément avec la classe I précise

getElementsByClassName retourne un NodeList. Il suffit de faire un looping au lieu d'accéder au [0], qui en est le premier élément.

Et puis-je faire quelque chose comme: .getElementsByClassName('new,new2,new3')

Oui, vous pouvez écrire une fonction qui appelle getElementsByClassName plusieurs fois puis agrège les résultats.

Toutes les principales bibliothèques JS incluent des moteurs de sélection CSS et il y a more than a few dedicated libraries for that purpose. Vous pouvez passer un group de sélecteurs de classe à l'un d'entre eux.

+0

peut-être je suis allé mal avec « boucle sur » .. Jqueryseemed plus rapide, mais je suis manque quelque chose à ça? '$ (document) .ready (fonction() {$ (". lazio #sar"). hover (fonction() {$ (". lazio"). animate ({opacité: "cacher"}, "lent") return false;});}); ' – user920218

0
[].forEach.call(document.getElementsByClassName('new'), function(elem) { 
elem.style.MozOpacity = 1; 
});