1

現在、getElementsByClassName プロパティに問題があります。製品にカーソルを合わせるとボタンが表示される表示/非表示機能があります。ここをクリックしてください。以下のコードは、ClassName JS 関数を使用してこの問題に対処する正しい方法ですか?

また、getElementsByClassName is not supported in IE8 を読んでいますが、これは本当ですか?これを回避する方法はありますか?

  <script>    
  function show(viewProductBtn){
document.getElementByClassName(viewProductBtn).style.visibility = "visible";
}

function hide(viewProductBtn) {
document.getElementByClassName(viewProductBtn).style.visibility = "hidden";
}
</script>

<!--HTML-->
<div class="product-shot-bg" onMouseOver="show('viewProductBtn')"      onMouseOut="hide('viewProductBtn')">
        <a href="#" class="viewProductBtn"></a>

現在、移行がどのように機能するかを示すために、開発サイトを getByID に切り替えました..

4

1 に答える 1

6

getElementsByClassName

複数形の「要素s」。つまり、関数は配列(実際にはNodeList)を返すため、配列をループするか、最初の要素のみが必要な場合は最初の要素を取得する必要があります。

document.querySelector("."+viewProductBtn)1つの要素、複数の要素についても参照するdocument.querySelectorAll("."+viewProductBtn)か、IDとを使用することを検討してgetElementByIdください。

于 2012-09-11T20:55:39.727 に答える