为什么在FUNCTION里边无法直接读取变量
var aLi=document.getElementsByTagName('li'); for(var i=0; i<aLi.length; i++){ aLi[i].onmouseover=function(){ var childnodes = this.childNodes; for(var j = 0; j<childnodes.length;j++){ if(childnodes[j].nodeName=="UL"){ var currentnode=childnodes[j]; var Timeaction = setInterval(function(){ currentnode.style.height = currentnode.offsetHeight+10+"px"; },30); } }
有很多个LI,LI下面有UL子元素,我想要获取到UL子元素,所以我在
var Timeaction = setInterval(function(){ childnodes[j].style.height = currentnode.offsetHeight+10+"px"; },30);
直接调用childnodes[j],结果返回结果为undefined,但是我在函数外面设置一个
var currentnode=childnodes[j];
然后再调用
currentnode.style.height = currentnode.offsetHeight+10+"px";
这样就可以调用,为什么我无法直接在函数中调用childnode[j],这个childnodes[j]应该是可以调用的呀,还有就是在function中为什么只能使用this,比如this.childNodes,才能正常调用,我使用aLi[i].childNodes就无法正常调用了,返回的是undefined的呢?