自己做的js选项卡报错,无法获取未定义或 null 引用的属性“style”是什么原因

<styletype="text/css">#pic{margin-top:16px;display:none;}.hover{background:#999;}</st... <style type="text/css">

#pic{margin-top:16px;display:none;}
.hover{background:#999;}
</style>

<script type="text/javascript">
window.onload=function(){
var oDiv=document.getElementById('con');
var oLi=oDiv.getElementsByTagName('li');
var aDiv=document.getElementById('right');
var lDiv=aDiv.getElementsByTagName('div');
for(var i=0;i<oLi.length;i++){
oLi[i].index='i';
oLi[i].onmouseover=function(){
for(var i=0;i<oLi.length;i++){
oLi[i].className='';
lDiv[i].style.display='none';
}
this.className='hover';

lDiv[this.index].style.display='block';就是这一行代码出错了,无法获取未定义或 null 引用的属性“style”,但是鼠标移上去所有的div都隐藏了,实在是不知道原因,请大侠们指点一二;
}
}

};
</script>
</head>

<body>
<h3>JS实现Tab选项卡效果</h3>
<div id="con">

<div id="left">
<ul id="list">
<li class="hover">
<img src="01.jpg" />

</li>
<li>
<img src="08.jpg" />
<a href="#">服部平次</a>

</li></ul>
</div>

<div id="right">
<div id="pic" align="middle" style="display:block;" >
<img src="1.jpg" />

</body>
展开
 我来答
yugi111
推荐于2017-11-26 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
<!DOCTYPE HTML>
<html>
<head>
<meta charset=UTF-8>
<title>recursion</title>
<style type="text/css">
#pic {
margin-top: 16px;
display: none;
}

.hover {
background: #999;
}
</style>
<script type="text/javascript">
window.onload = function ()
    {
    var oDiv = document.getElementById ('con');
    var oLi = oDiv.getElementsByTagName ('li');
    var aDiv = document.getElementById ('right');
    var lDiv = aDiv.getElementsByTagName ('div');
    var anonymous = function (i)
    {
    oLi[i].onmouseover = function ()
    {
    if (oLi.index >= 0)
    {
    oLi[oLi.index].className = '';
    lDiv[oLi.index].style.display = 'none';
    }
    this.className = 'hover';
    lDiv[i].style.display = 'block';//就是这一行代码出错了,无法获取未定义或 null 引用的属性“style”,但是鼠标移上去所有的div都隐藏了,实在是不知道原因,请大侠们指点一二;
    oLi.index = i;
    }
    };
    
    for ( var i = 0; i < oLi.length; i++)
    {
    anonymous (i);
    }
    };
</script>
</head>
<body>
<h3>JS实现Tab选项卡效果</h3>
<div id="con">
<div id="left">
<ul id="list">
<li class="hover"><img src="01.jpg" /></li>
<li><img src="08.jpg" /> <a href="#">服部平次</a></li>
</ul>
</div>
<div id="right">
<div id="pic" align="middle" style="display: block;">
<img src="1.jpg" />
</div>
<div id="x" align="middle" style="display: block;">
</div>
</div>
</div>
</body>
</html>
白菜一颗
2015-01-26 · TA获得超过8916个赞
知道大有可为答主
回答量:3260
采纳率:69%
帮助的人:3769万
展开全部
首先你的oLi[i].index='i';这句得写成oLi[i].index=i;
其次你的oLi的长度是2,lDiv的长度是1,但是你的两层循环都是按照oLi.length的循环来做的,所以对于lDiv来说越界了,你需要在后面再加一个div才行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
让猫飞一会儿
推荐于2016-10-05 · TA获得超过1120个赞
知道小有建树答主
回答量:540
采纳率:80%
帮助的人:282万
展开全部
问题在这一行上:
oLi[i].index='i';
把i两边的引号去掉,改成
oLi[i].index=i;
就好了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式