获取元素多个ID或CLASS

时间:2011-12-23 10:05:17

标签: javascript getelementbyid getelementsbyclassname

我无法使javascript在我指定的类中获得多个元素。我有意使用类!!如果我有5个同一个班级的div,我应该怎么称呼它们?

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 个答案:

答案 0 :(得分:3)

  

我无法让javascript在我指定的类中获得多个元素

getElementsByClassName返回NodeList。只需循环遍历它,而不是访问[0],这是其中的第一个元素。

  

我可以制作类似:.getElementsByClassName('new,new2,new3')

的内容

是的,您可以编写一个多次调用getElementsByClassName的函数,然后汇总结果。

所有主要的JS库都包含CSS选择器引擎,并且more than a few dedicated libraries for that purpose。您可以将group类选择器传递给其中一个。

答案 1 :(得分:1)

如果你能够使用jQuery,我会强烈推荐它,它会使这些事情变得微不足道:

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

答案 2 :(得分:0)

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