Problema de getElementsByClassName [duplicado]

Esta questão já tem uma resposta aqui:

O que os métodos querySelectorAll e getElementsBy * retornam? 9 respostas

Atualmente estou tendo problema com a propriedade getElementsByClassName. Eu tenho uma função de mostrar e ocultar que exibe um botão quando você passa o mouse sobre o produtoClique aqui Eu habilitei esta função usando a propriedade getElementById, no entanto, devido ao fato de que eu quero duplicatas desta função usando uma classe é uma prática melhor. O código abaixo está correto para resolver esse problema usando a função ClassName JS?

Também eu tenho lido getElementsByClassName não é suportado no IE8 isso é verdade e existe uma maneira de contornar isso?

  <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>

no momento eu troquei o site my dev de volta para getByID para demonstrar como a transição deveria funcionar ..

questionAnswers(1)

yourAnswerToTheQuestion