Search code examples
javascripthtmlcssonmouseoveronmouseout

Show/hide div onmouseover/onmouseout Javascript


I have a hyperlink on my page. I want to show a div when I mouse over the hyperlink, and hide it when I mouseout.

My html:

<a onmouseover="showDiv(this)" onmouseout="hideDiv(this)">
    <img>
    <div class="inner-block">
         Content
    </div>
</a>

Javascript:

function showDiv(elem) {
    elem.getElementsByTagName("div").style.visibility="visible";
}

function hideDiv(elem) {
    elem.getElementsByClassName("inner-block2").style.visibility="hidden";
}

and CSS:

.inner-block {
    visibility: hidden
}

I've tried getElementsByTagName, getElementsByClassName, whatever I try I get

Uncaught TypeError: Cannot set property 'visibility' of undefined

Solution

  • try this :

    function showDiv(elem) {
        elem.getElementsByTagName("div")[0].style.visibility="visible";
    }
    
    function hideDiv(elem) {
        elem.getElementsByTagName("div")[0].style.visibility = "hidden"
    }
    

    since getElementsByClassName("inner-block2") will return NodeList