第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

改變背景色的問題

var?trs?=?document.getElementsByTagName("tr");
????????changeColor(trs);?????
?????????????
????????//循環(huán)在里面
?????function?changeColor(trs){
????????????for(var?i=0;i<trs.length;i++){
????????????????var?tr?=?trs[i];
????????????????tr.onmouseover?=?function(){
????????????????????tr.style.backgroundColor?=?"#f2f2f2";
????????????????}
????????????????tr.onmouseout?=?function(){
????????????????????tr.style.backgroundColor?=?"#fff";
????????????????}
????????????}
????????????
?????}
var?trs?=?document.getElementsByTagName("tr");
????????//循環(huán)在外面
????????for(var?i=0;i<trs.length;i++){
????????????????changeColor(trs[i]);
????????????}???????????
?????function?changeColor(tr){
????????????tr.onmouseover?=?function(){
????????????????tr.style.backgroundColor?=?"#f2f2f2";
????????????}
????????????tr.onmouseout?=?function(){
????????????????tr.style.backgroundColor?=?"#fff";
????????????}???????????
?????}

循環(huán)在里面始終只有最后一行會有改背景色的效果,而循環(huán)在外面3行都有。為什么?

正在回答

2 回答

大哥,差點(diǎn)被你坑了一把,害的我都開始懷疑人生了。。。。

你這是沒有考慮到tr的作用域呀。。。。。。。。。。。。。。

??//循環(huán)在里面

?????function?changeColor(trs){

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

????????????????var?tr?=?trs[i];

????????????????tr.onmouseover?=?function(){

????????????????????tr.style.backgroundColor?=?"#f2f2f2";//當(dāng)事件觸發(fā)時for循環(huán)早就結(jié)束了,tr也變成了最后一個tr了

????????????????????????????????????????????????????????????????????????????????//肯定改變的是最后一個呀

????????????????}

????????????????tr.onmouseout?=?function(){

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

????????????????}

????????????}

?????}

===============================

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

????????//循環(huán)在外面

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

????????????????changeColor(trs[i]);

????????????}???????????

?????function?changeColor(tr){

????????????tr.onmouseover?=?function(){

????????????????tr.style.backgroundColor?=?"#f2f2f2";//事件觸發(fā)了,for循環(huán)也結(jié)束了,但這里的tr只是個形參

????????????????//,不是for循環(huán)里面的那個tr,作用域只是這個匿名函數(shù)

????????????}

????????????tr.onmouseout?=?function(){

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

????????????}???????????

?????}

總結(jié)就是,前者的tr都是同一個,而后者的tr不是同一個,當(dāng)全局變量跟局部變量重名時,局部變量會覆蓋掉全局變量,關(guān)于這一點(diǎn),可以看看這里全局變量和局部變量

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

NameZ 提問者

感謝!我也不想坑你的呀!
2016-03-10 回復(fù) 有任何疑惑可以回復(fù)我~
#2

格拉墨

循環(huán)在里面的時候, var tr = trs[i]; tr.onmouseover = function(){ tr.style.backgroundColor = "#f2f2f2"; },這里面=號前后兩個tr不相等,后面tr一直等于變量tr的最后一個值,即trs[2]。
2016-04-14 回復(fù) 有任何疑惑可以回復(fù)我~
#3

格拉墨 回復(fù) 格拉墨

所以循環(huán)在里面的時候,你鼠標(biāo)不管移到哪行,都是最后一行觸發(fā)
2016-04-14 回復(fù) 有任何疑惑可以回復(fù)我~
#4

格拉墨

這個應(yīng)該是JS的閉包問題,所以tr.onmouseover = function(){ this.style.backgroundColor = "#f2f2f2"; }就正常了
2016-04-14 回復(fù) 有任何疑惑可以回復(fù)我~
查看1條回復(fù)

不對吧,循環(huán)在里面,tr改成this就正常了

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

改變背景色的問題

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號