所以我有这个我正在研究的JavaScript,我想在鼠标悬停时显示/隐藏另一个HTML元素,但它不会工作。 这是HTML:
<div class='post' onmouseover="document.getElementsByClassName('another_element').style.display='inline';" onmouseout="document.getElementsByClassName('another_element').style.display='none';">
答案 0 :(得分:2)
试试这个:
<div class='post' onmouseover="document.getElementsByClassName('another_element')[0].style.display='inline';" onmouseout="document.getElementsByClassName('another_element')[0].style.display='none';">
它不起作用,因为getElementsByClassName()检索包含another
类的元素数组。您只需选择所需的元素即可。
如果元素只有一个,你可以给它一个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';">
答案 1 :(得分:1)
我只是想了一下,找到了一个简单的解决方案。谢谢你们所有人的贡献。这就是我想出来的。我可以为我要显示/隐藏的每个元素设置一个唯一的id,并为每个元素使用getElementById,而不是使用getElementsByClassName并且必须遍历数组。所以它最终是这样的:
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';"
答案 2 :(得分:0)
getElementsByClassName返回一个数组。尝试迭代它们。
答案 3 :(得分:0)
getElementsByClassName
会返回NodeList
,而非Node
。 NodeList
没有样式属性。您可以只使用列表中的第一个元素,也可以选择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';">
显然在第二个例子中你需要给元素一个ID ......