function creAd(){
var abs=document.getElementsByTagName("abbr");
if(abs.length<1) return false;
var abbes=new Array();
for(var i=0;i<abs.length;i++){
var tit=abs[i].getAttribute("title");
var des=abs[i].lastChild.nodeValue;
abbes[des]=tit;
}
var cdl=document.createElement("dl");
for(des in abbes){
var tit1=abbes[des];
var cdt=document.createElement("dt");
var cdt_text=document.createTextNode(des);
cdt.appendChild(cdt_text);
var cdd=document.createElement("dd");
var cdd_text=document.createTextNode(tit1);
cdd.appendChild(cdd_text);
cdl.appendChild(cdt);
cdl.appendChild(cdd);
}
document.getElementsByTagName("body")[0].appendChild(cdl);
}
window.onload=creAd;
这段代码
在第一个for循环里var des声明的变量,然后怎么在第二个for循环des就可以正常用了?跟java语言差这么大
------解决方案--------------------
javascript没有块级作用域 函数内声明的方法可以在函数内任何位置访问
声明变量不写var也可以 是全局变量
------解决方案--------------------
每次都直接 var 就可以 不觉的会对你有干扰
------解决方案--------------------
想跨函数的话 不用var 申明 直接赋值