1

指定したクラスで複数の要素を取得するJavaScriptを作成できません。意図的にクラスを使用しています。同じクラスのdivが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')

4

3 に答える 3

3

指定したクラスで複数の要素を取得するJavaScriptを作成できません

getElementsByClassNameNodeListを返します。[0]その最初の要素であるにアクセスする代わりに、ループするだけです。

そして、私は次のようなものを作ることができますか?.getElementsByClassName('new,new2,new3')

getElementsByClassNameはい、複数回呼び出して結果を集計する関数を作成できます。

すべての主要なJSライブラリにはCSSセレクタエンジンが含まれており、その目的のための専用ライブラリがいくつかあります。クラスセレクターのグループをそれらの1つに渡すことができます。

于 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 に答える