получить элемент с несколькими ID или CLASS - PullRequest
1 голос
/ 23 декабря 2011

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

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')

Ответы [ 3 ]

3 голосов
/ 23 декабря 2011

Я не могу сделать javascript, чтобы получить более одного элемента с указанным классом

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

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

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

Все основные библиотеки JS включают механизмы выбора CSS, и для этой цели больше, чем несколько выделенных библиотек ,Вы можете передать группу селекторов классов одному из них.

1 голос
/ 23 декабря 2011

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

$('#idOfYourElement')
  .mouseenter(function() { $('.new, .new2, .new3').css({MozOpacity : 0.4});)
  .mouseleave(function() { $('.new, .new2, .new3').css({MozOpacity : 1}););
0 голосов
/ 23 декабря 2011
[].forEach.call( document.getElementsByClassName('new'), function( elem ) {
elem.style.MozOpacity = 1;
});
...