1

我不能用我指定的类制作 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')

4

3 回答 3

3

我不能让 javascript 使用我指定的类来获取多个元素

getElementsByClassName返回一个节点列表。只需循环它而不是访问它[0],这是它的第一个元素。

我可以做类似的事情吗:.getElementsByClassName('new,new2,new3')

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

所有主要的 JS 库都包含 CSS 选择器引擎,并且有很多专门用于此目的的库。您可以将一类选择器传递给其中一个。

于 2011-12-23T10:07:27.113 回答
1

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

$('#idOfYourElement')
  .mouseenter(function() { $('.new, .new2, .new3').css({MozOpacity : 0.4});)
  .mouseleave(function() { $('.new, .new2, .new3').css({MozOpacity : 1}););
于 2011-12-23T10:11:09.603 回答
0
[].forEach.call( document.getElementsByClassName('new'), function( elem ) {
elem.style.MozOpacity = 1;
});
于 2011-12-23T10:08:17.057 回答