1

だから私はこのJavaScriptに取り組んでおり、マウスオーバーで別のHTML要素を表示/非表示にしたいのですが、うまくいきません。HTMLは次のとおりです。

<div class='post' onmouseover="document.getElementsByClassName('another_element').style.display='inline';" onmouseout="document.getElementsByClassName('another_element').style.display='none';">
4

4 に答える 4

2

これを試して:

<div class='post' onmouseover="document.getElementsByClassName('another_element')[0].style.display='inline';" onmouseout="document.getElementsByClassName('another_element')[0].style.display='none';">

anothergetElementsByClassName() はクラスを含む要素の配列を取得するため、機能しません。必要な要素を選択するだけです。

要素が 1 つだけの場合は、次のように特定の ID を指定できます。

<div id="another_element"></div>

<div class='post' onmouseover="document.getElementById('another_element').style.display='inline';" onmouseout="document.getElementById('another_element').style.display='none';">
于 2011-02-15T23:38:09.520 に答える
1

私はちょうど考えていて、簡単な解決策を見つけました。皆様の貢献に感謝します。これが私が思いついたものです。表示/非表示にする各要素に一意の ID を設定し、getElementsByClassName を使用して配列をループする代わりに、それぞれに getElementById を使用できます。したがって、次のようになります。

onmouseover="document.getElementById('an_element').style.display='inline'; document.getElementById('another_element').style.display='inline';"
onmouseout="document.getElementById('an_element').style.display='none'; document.getElementById('another_element').style.display='none';"
于 2011-02-25T06:53:54.630 に答える
0

getElementsByClassName は配列を返します。それらを繰り返してみてください。

于 2011-02-15T23:38:09.070 に答える
0

getElementsByClassNameNodeListではなく を返しますNode。ANodeListにはスタイル プロパティがありません。リストの最初の要素のみを使用するか、代わりに ID で選択することができます。

<div class='post' onmouseover="document.getElementsByClassName('another_element')[0].style.display='inline';" onmouseout="document.getElementsByClassName('another_element')[0].style.display='none';">

<div class='post' onmouseover="document.getElementsById('another_element').style.display='inline';" onmouseout="document.getElementsById('another_element').style.display='none';">

明らかに、2 番目の例では、要素に ID を与える必要があります...

于 2011-02-15T23:39:12.360 に答える