2011-12-23 5 views
1

私は指定したクラスで複数の要素を取得するためのjavascriptを作成できません。クラスを目的に使用しています!同じクラスの5つのdivがある場合は、どうすればいいですか?複数のIDまたはクラスを取得する

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

を私はのNodeListを返しgetElementsByClassName

を指定したクラスで複数の要素を取得するにはJavaScriptを行うことはできません。その中の最初の要素である[0]にアクセスするのではなく、それをループするだけです。

そして、私のような何かを行うことができます。.getElementsByClassName('new,new2,new3')

はい、あなたはgetElementsByClassNameを複数回呼び出し、結果を集約関数を記述することができます。

すべての主要なJSライブラリにはCSSセレクタエンジンが含まれており、more than a few dedicated libraries for that purposeがあります。クラスセレクタのgroupをその1つに渡すことができます。

+0

多分私はより速く.. Jqueryseemed「オーバー・ループ」と間違っていた、しかし、私はこれに何か不足していますか? (不透明度: "隠す")、 "遅い")$(ドキュメント).ready(関数(){$( "。 return false;});}); ' – user920218

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