為什么賦值寫在函數(shù)里就不起作用了?
? ? 如下代碼中, 把 li[i].index=i寫在onmouseover的函數(shù)里(不是for循環(huán)中),代碼就沒有效果了,這是為什么呢?
<script type="text/javascript">
? ? ? window.onload=function(){
? ? ? var p=document.getElementsByTagName("p");
? ? ? var li=document.getElementsByTagName("li");
? ? ? for(var i=0; i<li.length;i++){
? ? ? li[i].index=i;
? ? ? li[i].onmouseover=function(){
? ? ? for(var i=0; i<li.length;i++){
? ? ? li[i].className="";
? ? ? p[i].className="hide";
? ? ? }
? ? ? this.className="active";
? ? ? p[this.index].className="show"; ? ? ?
? ? ? }
? ? ? }
? ? }
? ? </script>
2017-08-27
?這里面li[i].onmouseover=function()相當于
<li onmouseover="a"> <!--第i+1個li-->
function a(){}
把?li[i].index=i;寫到里面,其實并沒有i的值,所以下面li[i]都是用this,代表li[i]該對象,可以這樣嘗試一下,分別把
this.index=0 ? this.index=1 ??this.index=2,放到onmouseover的函數(shù)里,就會只顯示序號對應(yīng)的圖像
2017-08-28
可能是作用域的關(guān)系 ???li[i].index=i寫在函數(shù)里 作用范圍就只在函數(shù)內(nèi)部 ?外部無法調(diào)用
2017-08-26
別的問題不知道,首先你的for循環(huán)都是循環(huán)i就不對
2017-08-26
這應(yīng)該是函數(shù)的執(zhí)行環(huán)境的問題,如果寫在onmouseover的函數(shù)里,當函數(shù)執(zhí)行完,執(zhí)行環(huán)境被銷毀,li[i].index=i也會被銷毀,所以就沒有了,應(yīng)該是,我也不是特別清楚。