你试一试这个,我已经测试过了。<html>
<Script LANGUAGE ="JavaScript" TYPE ="text/javascript" >
<!-- // 向列表objList中添加新的元素
function addElement(objList,tex,val){
var vn = new Option(tex,val); 
objList.add(vn);
   }
   // 清空列表objList中的元素
function clear(objList){
len=objList.length;
      for(i=len-1;i>=0;i--)
   objList.options[i]=null;
   addElement(objList , "全部" , "全部" ) ;
}
    country = new Array ;
    city = new Array ;
    country[0] = new Array("美国","加拿大","把戏") ;
    country[1] = new Array("法国","英国") ;

city[0] = new Array("纽约" , "华盛顿" , "罗山机" ) ;
city[1] = new Array("加拿大", "加拿大B");
city[2] = new Array("巴西1","巴西2","巴西3");
city[3] = new Array("巴黎" , "法国2" , "法国3" );
city[4] = new Array("伦敦" , "英国Y"); // 改变洲名,刷新国家名称
function changeContinent(){
cBox = conti ;
con = countries ;
if(cBox.selectedIndex != 0){
clear(con);
for(var i=0; i<country[cBox.selectedIndex-1].length; i++)
addElement(con , country[cBox.selectedIndex-1][i],country[cBox.selectedIndex-1][i]);

}else{
clear(con) ;
}
clear(cities);
}

// 改变国家名称,刷新城市列表
function changeCountry(){
cBox = countries ;
cc = cities ;
clear(cc) ;
var llen = cBox.length - 1 ;
var index = cBox.selectedIndex ;
var ss = conti.selectedIndex -1 + (conti.selectedIndex -1) * country[conti.selectedIndex -1].length + index -1 ;
if(index != 0){
for(var i=0 ; i < city[ss].length ; i++){
addElement(cc , city[ss][i] , city[ss][i]) ;
}
}



}



-->
</Script><body >洲名<SELECT size=4 name=conti onChange='changeContinent();'>
<OPTION value='' >全部</OPTION>
<OPTION value='美洲' >美洲</OPTION>
<OPTION value='欧洲' >欧洲</OPTION>
</SELECT>
</SELECT>
国家<SELECT size=4 name="countries" onChange='changeCountry();'>
<OPTION value='' >全部</OPTION>
</SELECT>城市<SELECT size=4 name="cities">
<OPTION value='' >全部</OPTION>
</SELECT>
</body>
</html>