为了账号安全,请及时绑定邮箱和手机立即绑定

这是为什么啊,style属性未定义

http://img1.sycdn.imooc.com//5834ef9e0001647d04480440.jpg这是为什么啊

正在回答

5 回答

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
div{
height: 200px;
width: 200px;
border: 1px solid saddlebrown;
display: none;
}
</style>
</head>
<body>
<!--
获取选项卡和div
-->

<input type="button"id="btn1" value="选项卡一"/>
<input type="button"id="btn2" value="选项卡二" />
<input type="button"id="btn3" value="选项卡三" />
<div id="div1" style="display: block;">内容一</div>
<div id="div2">内容一2</div>
<div id="div3">内容一3</div>
<script>
var btns=document.getElementsByTagName("input");
var odiv=document.getElementsByTagName("div");

for(var i=0;l=btns.length,i<l;i++){
    !function(i){
        odiv=document.getElementsByTagName("div");
        btns[i].onclick=function(){
            deColor();
            btns[i].style.background='blue';
            boxHide();
            odiv[i].style.display='block'
         //alert(odiv[i].innerHTML)
    }
    }(i)
}
//给所有的btns清除背景色
function deColor(){
 for(var i=0;i<btns.length;i++){
     btns[i].style.background='';
 }
}
//注意,div只能3个,所有div隐藏,其实不建议用TagName,用className比较好,注意ie兼容就好,可以学习下
//课程http://www.imooc.com/learn/138
function boxHide(){
    for(var i=0;i<btns.length;i++){
    odiv[i].style.display='none'
    }
}

</script>
</body>
</html>

亲,我是用闭包的方法,做这个功能的,为什么用闭包,是因为for循环是一次性吧所有i都循环出来,我也理解你之前的btns.index=i;,他是给每个下标i分类吧,不过我没用这种方法

1 回复 有任何疑惑可以回复我~
#1

慕UI8820655 提问者

非常感谢!
2016-11-24 回复 有任何疑惑可以回复我~

var i=0;l=btns.length,i<l;i++

0 回复 有任何疑惑可以回复我~
#1

慕UI8820655 提问者

把第一个for循环条件l=btns.length,i&lt;l 改成这geese var i=0;i<btns.length;i++,总之谢谢啦
2016-11-24 回复 有任何疑惑可以回复我~

for循环里面有个小于号被转义了,相信你看的出来

0 回复 有任何疑惑可以回复我~

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

<style>

div{

height: 200px;

width: 200px;

border: 1px solid saddlebrown;

display: none;

}

</style>

</head>

<body>

<!--

获取选项卡和div

-->

<input type="button"id="btn1" value="选项卡一"/>

<input type="button"id="btn2" value="选项卡二" />

<input type="button"id="btn3" value="选项卡三" />

<div id="div1" style="display: block;">内容一</div>

<div id="div2">内容一2</div>

<div id="div3">内容一3</div>

<script>

var btns=document.getElementsByTagName("input");

var div=document.getElementsByTagName("div");

for(var i=0;i<btns.length;i++){

//console.log(i);//0,1,2

btns.index=i;//i=0,1,2自定义一个index属性n

var last=btns[i];//上一个

btns[i].onclick=function(){

last.style.background="";

alert();

//div[].style.display="none";

this.style.backgroundColor="blue";

//div[2].style.display="block";

last=this;

}

}

</script>

</body>

</html>


0 回复 有任何疑惑可以回复我~

我竟然有点看不懂你的代码,声明index并赋值是btns.index=i么,不应该是var index=i;么

你console.log(last.index)看看能出来什么

0 回复 有任何疑惑可以回复我~
#1

慕UI8820655 提问者

btns.index=i;是给btns定义了一个属性,我刚试了一下console.log(last.index),说last.index为定义
2016-11-23 回复 有任何疑惑可以回复我~
#2

我不是管家 回复 慕UI8820655 提问者

能不把代码贴出来,我测试一下
2016-11-23 回复 有任何疑惑可以回复我~
#3

我不是管家 回复 慕UI8820655 提问者

能不能把代码贴出来,我测试一下
2016-11-23 回复 有任何疑惑可以回复我~
#4

慕UI8820655 提问者

一帖出,谢谢啊
2016-11-23 回复 有任何疑惑可以回复我~
#5

慕UI8820655 提问者 回复 我不是管家

就是我注释掉的那个地方
2016-11-23 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消

这是为什么啊,style属性未定义

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号