樓主的代碼里有很多我看不懂的地方,我據(jù)姑且的認(rèn)為樓主想要實現(xiàn)這么一個效果:有個存儲數(shù)據(jù)的數(shù)組freshdreamdata,生成一個列表,列表里的內(nèi)容與freshdreamdata一一對應(yīng)。當(dāng)用戶點(diǎn)擊列表里的項目時就調(diào)用deleteS并將項目的號碼傳遞給它。一開始樓主肯定會這樣寫for(vari=0;idocument.write(""+""+freshdreamdata[i]+""+"
");}生成的html大概是這樣
XXX-0XXX-1XXX-2當(dāng)樓主點(diǎn)擊這些可愛的鏈接的時候,就發(fā)現(xiàn)沒有用。這是為什么呢?因為html解析器不知道'deleteS(i)'其中的i表示什么意思。樓主應(yīng)該這樣寫才對:for(vari=0;idocument.write(""+""+freshdreamdata[i]+""+"
");}
XXX-0XXX-1XXX-2以上內(nèi)容均不涉及閉包。如果樓主你想要閉包的話。。也可以。我們就用創(chuàng)建DOM的方法來實現(xiàn)這個功能。varlist=document.createElement('ul');for(vari=0;ivarli=document.createElement('li');varlink=document.createElement('a');link.onclick=function(){deleteS(i)}link.innerText=freshdreamdata[i];li.appendChild(link);list.appendChild(li);}document.appendChild(list);很多新手都會這樣寫,看上去好像沒什么問題,但當(dāng)實際操作的時候就會發(fā)現(xiàn)傳入deleteS里的i值總是一個定值,不管點(diǎn)擊哪個鏈接,刪除的都是最后一個。這個時候就需要閉包了。functionbibao(i){returnfunction(){deleteS(i);}}varlist=document.createElement('ul');for(vari=0;ivarli=document.createElement('li');varlink=document.createElement('a');link.onclick=bibao(i);link.innerText=freshdreamdata[i];li.appendChild(link);list.appendChild(li);}目測樓主基本功不夠扎實,上面我就先告訴個結(jié)果,其中道理自己細(xì)細(xì)品味。