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

為了賬號安全,請及時綁定郵箱和手機立即綁定

JavaScript進階篇9-22 編程練習

  1. 鼠標移到不同行上時背景色改為色值為 #f2f2f2,移開鼠標時則恢復為原背景色 #fff 。

    這里的代碼為什么要用this,而不能是trs[i].style.backgroundColor = "#f2f2f2";


?window.onload = function(){

? ? ? ? var trs = document.getElementsByTagName('tr');

? ? ? ? ? ?for(var i = 1; i < trs.length; i++){

? ? ? ? ? ? ? ?trs[i].onmouseover = function(){

? ? ? ? ? ? ? ? ? ? ?this.style.backgroundColor = "#f2f2f2";

? ? ? ? ? ? ? ?}

? ? ? ? ? ? ? ?trs[i].onmouseout = function(){

? ? ? ? ? ? ? ? ? ? ?this.style.backgroundColor = "#fff";

? ? ? ? ? ? ? ? }

? ? ? ?}

? ? ? ? }

正在回答

1 回答

因為JS里的對象是全局的,如果使用trs[i],這里的i的值一直是走完循環后的值,也就是:trs.length的值,所以trs[i]一直為undefined

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

qq_泥巴的城_0 提問者

非常感謝!
2017-10-03 回復 有任何疑惑可以回復我~
#2

zhouqian

不好意思,之前我也是初學JS,雖然結論是對的,但是回答中說到的“JS對象是全局的”這句話是錯誤的。重新解釋如下: 如果在function()函數內部使用函數外定義的局部變量會形成閉包,函數內訪問外部變量獲取到的值是最后一次修改后的值。也就是說i的值是trs.length,所以trs[i]一直為undefined
2017-10-20 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

JavaScript進階篇9-22 編程練習

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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