document.getElementById(s[v-1])
----------
类似与这样的句子,你上面还有很多.
在本页面,这些Id是可以获得的,但是如果你把代码移动出去,他就找不到页面中的id,
---
你可以把所有的id,获得后,然后把参数传递过去.即可~

解决方案 »

  1.   

    具体应该怎么改写呢?另外,在.htm文件中,<form name="frm"> 
    <select id="s1"><option>省份</option></select> 
    <select id="s2"><option>地级市</option></select> 
    <select id="s3"><option>市、县级市、县</option></select> 
    </form> 如果要显示两处,怎么改写?
      

  2.   

    改成document.forms[0].getElementById(s[v-1])
      

  3.   

    呵呵,功夫不负有心人,我自己找到答案了,问题的提出:以上代码存为.htm文件运行正常,没有错误提示;
    但是我想为了程序结构清晰,便于维护,
    将上面“<SCRIPT LANGUAGE="JavaScript">……</SCRIPT> ”
    之间代码单独存为一个sanji.js文件,其它部分不变,
    然后在.htm文件里使用<script language="JavaScript" src="sanji.js"></script>的方式调用,但此时运行.htm文件就会失去“三级菜单”关联调用的功能,并且报错:“缺少对象”,解决方法如下:  做东西时经常用到中国地区选择功能,于是从网上搜索一些中国地区js代码,然后给他引用到aspx页中,这也许您会碰到个问题:在html中测试一切正常,但是js文件嵌套到asp文件(*********注:在htm中也可以 by emituofo***********)中,就会出错!这个问题也困饶我n长时间,但是你只要用记事本打开.js后,另存一次,不过要注意的是:底下编码类型请选择:unicode 这样整个世界就和平拉! (注:该方法是小笨笨同学发现) 参考网址:http://www.linuxdby.com/html/program/aspnet/20070412/6844.html
    鸣谢:这位网站的站主的无私提供!同时,请教高手,在.htm文件中,这一段:<form name="frm"> 
    <select id="s1"><option>省份</option></select> 
    <select id="s2"><option>地级市</option></select> 
    <select id="s3"><option>市、县级市、县</option></select> 
    </form> 如果要在同一页面显示两处,怎么改写才能实现这个要求?
    谢谢了!
      

  4.   

    我自己再顶一下.疑问:为什么改为编码类型:unicode 就可以了呢,真是奇怪!
      

  5.   

    如果要显示在两处,再写一个change函数,即可:
    function change2(v){ 
    var str="0"; 
    for(i=0;i<v;i++){ str+=("_"+(document.getElementById(t[i]).selectedIndex-1));}; 
    var ss=document.getElementById(t[v]); 
    with(ss){ 
    length = 0; 
    options[0]=new Option(opt0[v],opt0[v]); 
    if(v && document.getElementById(t[v-1]).selectedIndex>0 || !v) 

    if(dsy.Exists(str)){ 
    ar = dsy.Items[str]; 
    for(i=0;i<ar.length;i++)options[length]=new Option(ar[i],ar[i]); 
    if(v)options[1].selected = true; 


    if(++v<s.length){change2(v);} 


    ………………var t=["t1","t2","t3"]; ………………
    for(i=0;i<t.length-1;i++) 
    document.getElementById(t[i]).onchange=new Function("change2("+(i+1)+")"); 
    change2(0);
      

  6.   

    如何取到select中 s1,s2,s3的值