2011-12-23 2 views
1

Я не могу сделать javascript, чтобы получить более одного элемента с указанным классом. Я использую классы специально! Если у меня есть 5 divs с тем же классом, как мне их называть?получить Element multiple ID или CLASS

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;" 

И я могу сделать что-то вроде: .getElementsByClassName('new,new2,new3')

ответ

1

Если вы можете использовать jQuery, я очень рекомендую его, он делает такие вещи тривиальной:

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

было бы здорово, но это не сработает. Я раскачиваю Jquery1.6.1 – user920218

3

Я не могу сделать Javascript, чтобы получить больше, чем один элемент с классом Уточняю

getElementsByClassName возвращает NodeList. Просто зацикливайтесь на нем, а не на доступ к [0], который является первым элементом в нем.

И я могу сделать что-то вроде: .getElementsByClassName('new,new2,new3')

Да, вы можете написать функцию, которая вызывает getElementsByClassName несколько раз, а затем агрегирует результаты.

Все основные библиотеки JS включают в себя механизмы выбора CSS и есть more than a few dedicated libraries for that purpose. Вы можете передать group селекторов классов в один из них.

+0

может быть, я не заладилось с «перебрать» .. Jqueryseemed быстрее, но я чего-то не хватает? '$ (document) .ready (function() {$ (". lazio #sar"). hover (function() {$ (". lazio"). animate ({opacity: "hide"}, "slow") return false;});}); ' – user920218

0
[].forEach.call(document.getElementsByClassName('new'), function(elem) { 
elem.style.MozOpacity = 1; 
}); 
Смежные вопросы