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

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

為什么這兩段代碼不一樣?求解

?//第一種

? ? ?window.onload = function(){

? ? ? var td=document.getElementsByTagName("td");

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


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

? ? ? ? ? ? td[i].style.backgroundColor="#f2f2f2";

? ? ? ? ? ? }

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

? ? ? ? ? ? td[i].style.backgroundColor="#fff";}

? ? ? ? ? ? }

}

//第二種

? ?window.onload = function(){

? ? ? ? var td=document.getElementsByTagName("td")

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

? ? ? ? bgchange(td[i]);

? ? ? ? }

? ? ? ?}

function bgchange(obj){

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

? ? ? ? obj.style.backgroundColor="#f2f2f2";}

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

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

? ? ? ? }

? ?}


正在回答

2 回答

有點意思- -第二種漏了個符號,還有沒有吧bgchange這個函數寫在里面(不是指for里面)

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

慕圣9424722 提問者

第二段沒漏符號哦, 有一個}沒有換行, 第一段運行沒效果,第二段有效果,在第二段window.onload里 bgchange(td[i])已經調用了函數了,函數寫在里外都一樣的
2017-08-23 回復 有任何疑惑可以回復我~
#2

我要SSR 回復 慕圣9424722 提問者

第二段第一個聲明后面沒;號,第一段忘了說td[i].style.backgroundColor="#f2f2f2";的td[i]換成this。。。你需要操作的是對象不是元素
2017-08-23 回復 有任何疑惑可以回復我~
#3

我要SSR 回復 慕圣9424722 提問者

關于調用函數這個還是寫進去好點。。。
2017-08-23 回復 有任何疑惑可以回復我~
#4

我要SSR 回復 我要SSR

好像說錯了- -后面那句話忽略掉- -
2017-08-23 回復 有任何疑惑可以回復我~
#5

我要SSR 回復 我要SSR

你需要操作的是對象不是元素 這句錯了不好意思
2017-08-23 回復 有任何疑惑可以回復我~
#6

慕圣9424722 提問者 回復 我要SSR

改為this是對的,這個this為什么不能用td[i]還是有點不理解,是在函數中所有的對象應該都是this嗎?
2017-08-23 回復 有任何疑惑可以回復我~
#7

慕圣9424722 提問者 回復 慕圣9424722 提問者

如果是在函數外td[i].style.backgroundColor="#f2f2f2";應該沒問題吧,好像前幾章節里就是這樣寫的
2017-08-23 回復 有任何疑惑可以回復我~
#8

擁牙令 回復 慕圣9424722 提問者

雖然已經沒有積分了但是我來告訴你吧,由于js的閉包性,i的值并沒有傳進去~
2017-08-23 回復 有任何疑惑可以回復我~
查看5條回復

第一段代碼運行沒有結果,第二段是有結果的,請問第一段代碼問題在哪里

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

舉報

0/150
提交
取消

為什么這兩段代碼不一樣?求解

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

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

幫助反饋 APP下載

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

公眾號

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