課程
/前端開發
/JavaScript
/JavaScript進階篇
這是為什么啊
2016-11-23
源自:JavaScript進階篇 5-3
正在回答
<!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.xianlaiwan.cn/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分類吧,不過我沒用這種方法
慕UI8820655 提問者
var?i=0;l=btns.length,i<l;i++
for循環里面有個小于號被轉義了,相信你看的出來
<!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>
我竟然有點看不懂你的代碼,聲明index并賦值是btns.index=i么,不應該是var index=i;么
你console.log(last.index)看看能出來什么
我不是管家 回復 慕UI8820655 提問者
慕UI8820655 提問者 回復 我不是管家
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
1 回答為什么sum是未定義變量
2 回答為什么顯示未定義
2 回答為什么會顯示未定義
9 回答為什么結果顯示未定義
2 回答為什么較小值是未定義???各位大神求解答
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-11-24
親,我是用閉包的方法,做這個功能的,為什么用閉包,是因為for循環是一次性吧所有i都循環出來,我也理解你之前的btns.index=i;,他是給每個下標i分類吧,不過我沒用這種方法
2016-11-24
var?i=0;l=btns.length,i<l;i++
2016-11-24
for循環里面有個小于號被轉義了,相信你看的出來
2016-11-23
<!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>
2016-11-23
我竟然有點看不懂你的代碼,聲明index并賦值是btns.index=i么,不應該是var index=i;么
你console.log(last.index)看看能出來什么