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

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

對于js代碼節點數量增加的獲取

對于js代碼節點數量增加的獲取

weibo_和諧_漢子_0 2017-07-13 16:10:08
<!DOCTYPE?html> <html> <head> ????<meta?charset="utf-8"> ????<title>js</title> ????<script> ????????window.onload?=?function(){ ????????????var?oBtn?=?document.getElementById("btn"); ????????????var?oUl?=?document.getElementById("ul1"); ????????????var?aLi?=?oUl.getElementsByTagName('li'); ????????????console.log(aLi.length+";1"); ????????????function?mHover?()?{ ????????????????//鼠標移入變紅,移出變白 ????????????????console.log(aLi.length+";2");//疑問在這里,在執行完添加節點的事件以后, ??????????????????????????????????????????????//為什么aLi.length會增加?這里沒有重新運行獲取全部li的代碼啊。 ????????????????for(var?i=0;?i<aLi.length;i++){ ????????????????????aLi[i].onmouseover?=?function(){ ????????????????????????this.style.background?=?'red'; ????????????????????}; ????????????????????aLi[i].onmouseout?=?function(){ ????????????????????????this.style.background?=?'#fff'; ????????????????????} ????????????????} ????????????} ????????????mHover?(); ????????????//添加新節點 ????????????oBtn.onclick?=?function(){ ????????????????var?oLi?=?document.createElement('li'); ????????????????oLi.innerHTML?=?111; ????????????????oUl.appendChild(oLi); ????????????????mHover?(); ????????????}; ????????} ????</script> </head> <body> <input?type="button"?name=""?id="btn"?value="添加"?/> <ul?id="ul1"> ????<li>111</li> ????<li>222</li> ????<li>333</li> ????<li>444</li> </ul> </body> </html>這是一個動態添加li節點的功能,點擊按鈕添加li,同時具有鼠標移入和移出改變li顏色功能;但是點擊增加按鈕,執行新增li節點以后,重新執行了mHover ()函數,此時這個函數中循環體的aLi.length為什么會增加?怎么實現增加的?因為我并沒有在這個循環體中重新獲取li節點(oUl.getElementsByTagName('li')沒有執行)。請解答
查看完整描述

1 回答

?
FSYu

TA貢獻152條經驗 獲得超59個贊

你在按鈕的點擊函數里調用了mHover ()函數,所以mHover ()函數里的li數量又重新獲取了,如果按鈕的點擊函數不調用mHover ()函數,那么mHover ()函數里的li數量是固定的

查看完整回答
反對 回復 2017-07-13
  • weibo_和諧_漢子_0
    weibo_和諧_漢子_0
    mHover()函數里面,沒有重新獲取,現在新添加后li的總個數的代碼啊,如何改變的aLi.length?
  • weibo_和諧_漢子_0
    weibo_和諧_漢子_0
    問題解決了; var aLi = oUl.getElementsByTagName('li');返回的是一個HTMLCollection集合,該集合具有動態性,如果oUl中增加了li,就會被動態的添加到這個集合中;所以變量aLi的length會增加;
  • 1 回答
  • 0 關注
  • 1246 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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