出现的现问题
集合是没有display属性的,集合中的元素才有display属性。当你试图做 集合.style.display的时候,自然会报错。
错误
var odl =obj.getElementsByTagName(“dl”);
odl.style.display = “block”;
正确
var odl =obj.getElementsByTagName(“dl”)[0];
odl.style.display = “block”;
详情:https://blog.csdn.net/weixin_42636552/article/details/88227920
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>15-3下拉菜单练习</title>
<style type="text/css">
*{
margin: 0; padding: 0;
}
ul,li{
list-style: none;
}
#menuBox{
width: 600px;
margin: 30px auto;
background-color: #eeeeee;
border: 1px solid #cccccc;
height: 40px;
line-height: 40px;
}
#nemus li{
float:left;
}
#nemus li a{
display: block;
width:140px;
text-decoration: none;
color:#000;
text-align: center;
}
#nemus li dl{
border: 1px solid #ccc;
background-color: #eeeeee;
width: 138px;
}
#nemus li dl dt{
border-bottom: 1px solid #ccc;
}
</style>
<script type="text/javascript">
//鼠标挪动到标签上
function showMenu(obj) {
var odl =obj.getElementsByTagName("dl")[0];
odl.style.display = "block";
}
//鼠标挪开
function hideMenu(obj) {
var odl = obj.getElementsByTagName("dl")[0];
odl.style.display = "none";
}
</script>
</head>
<body>
<div id ="menuBox">
<ul id="nemus">
<li>
<a href="#">首页</a>
</li>
<li onmousemove="showMenu(this)" onmouseout="hideMenu(this)">
<a href="#">新闻</a>
<dl style="display: none;">
<dt>
国际动态
</dt>
<dt>
国内要闻
</dt>
</dl>
</li>
<li onmousemove="showMenu(this)" onmouseout="hideMenu(this)">
<a href="#">游戏下载</a>
<dl style="display:none;">
<dt>
射击
</dt>
<dt>
动作
</dt>
<dt>
单机
</dt>
<dt>
装扮
</dt>
</dl>
</li>
<li>
<a href="#">关于我们</a>
</li>
</ul>
</div>
</body>
</html>