亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

alert(i);//為是什么 等于2啊?上面的i不是小于lis.length嗎??

alert(i);//為是什么 等于2?。可厦娴膇不是小于lis.length嗎??

慕前端8664132 2016-09-04 00:18:01
<a href="#" id="jc">好的</a> <h3>我</h3> <ul>? <li>0</li>? <li>1</li>? </ul>? <script> var lis = document.getElementsByTagName("li");? for(var i = 0; i < lis.length; i++){? lis[i].onclick = function(event){? alert(event); alert(i);//為是什么 等于2?。可厦娴膇不是小于lis.length嗎?? }? }? </script> ?
查看完整描述

9 回答

已采納
?
menghuanbaolei

TA貢獻20條經驗 獲得超2個贊

很有意思的題目,因為點擊的時候,里面的 i 會在 i ++ 一次,卻不會改變外面的 i

圖片上傳不了,直接上代碼吧,你可以測試看看

		var?lis?=?document.getElementsByTagName("li");
		for(var?i?=?0;?i?<?lis.length;?i++){
			console.log(i);?//?一開始輸出i
			var?is?=?i;??//?如果想里面的i,跟外面一樣的話,?可以在這里賦值一下
			lis[i].onclick?=?function(event){
				console.log(i);?//?當點擊的時候輸出i
				console.log(is)?//?輸出的?i?就是?1?了
			}
		}
		
		//?測試循環的
		//?for(var?j?=?1;?j?<=?10;?j++){
		//?	console.log(j);
		//?	document.onclick?=?function?()?{
		//?		console.log(j);
		//?	}
		//?}		


查看完整回答
2 反對 回復 2016-09-04
?
guaguaerhao

TA貢獻1條經驗 獲得超2個贊

哥們,我覺得是你想得太復雜了吧,i=0的時候,i<lis.length,那么i++第一遍。程序執行一遍了,i就變成了1
那么i=1的時候,i<lis.length還是成立的,那么程序自然就會在執行一遍,那么i自然就會在程序執行一遍之后,i++了。
而這時候的i已經不是剛剛的那個 ?i=1 ?的 ?i ?了。而是 i=2 了。所以 i 就是 2呢?。?!我就是這么理解的。你思考一下吧。

查看完整回答
2 反對 回復 2016-09-04
?
進擊的小開

TA貢獻4條經驗 獲得超0個贊

你沒有點擊時候,外面的循環是一直在運行的,

查看完整回答
反對 回復 2016-09-04
?
進擊的小開

TA貢獻4條經驗 獲得超0個贊

我覺得是函數的作用域與作用域鏈的問題,

查看完整回答
反對 回復 2016-09-04
?
qq_孤獨患者憂于心_03873802

TA貢獻1條經驗 獲得超0個贊

應該是執行次數吧

查看完整回答
反對 回復 2016-09-04
?
qq_奈奈奈_03699702

TA貢獻19條經驗 獲得超5個贊

閉包。

引用了全局變量對象

查看完整回答
反對 回復 2016-09-04
?
LiuYina

TA貢獻10條經驗 獲得超1個贊

其中for循環的作用就是要綁定onclick事件,也就是說當你點擊的時候for循環已經結束了,i當然是2(i=1運行完時,自加一后為2,不成立,便跳出循環)。
要換成索引值
alert(lis[i].index);

查看完整回答
反對 回復 2016-09-04
?
stone310

TA貢獻361條經驗 獲得超191個贊

i=0的時候判斷i<lis.length為true,然后i++,i=1;

i=1的時候判斷i<lis.length為true,然后i++,i=2;

i=2的時候判斷i<lis.length為false,

所以最后i為2

i放在事件內部是不會循環的,因為頁面加載時for循環綁定了lis[i].onclick事件,而這時候頁面加載好后i已經循環完畢,是個定值,就是lis.length,在這里即為2

查看完整回答
反對 回復 2016-09-04
  • 9 回答
  • 0 關注
  • 2619 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號