我个人觉得在执行关闭时 selectlist并没有从label中移除,所以第二次又执行了一次 la.appendChild(selectlist); 
有什么办法可以将selectlist从la中去掉呢,但是selectlist这个对象还存在,也就是方便第二次载入label中,selectlist是声明的一个全局!!请各位发表下看法!

解决方案 »

  1.   

    代码很多,问题的核心代码就是这些:
    ====================================================
    var selectlist;
    selectlist=document.createElement("select");
    selectlist.className="selectlist"
    selectlist.id="selectlist";
    for(var i=0;i<100;i++){
       selectlist.options[i]=new Option(i,i);
    }//创建完毕,但这里并没有将它加载到任何页面元素中去!!在同一页的js中
    通过按钮将它加到label中,具体就是上面所述的!!
      

  2.   

    那本征服AJAX里面好像有反射机制(http://www.dearbook.com.cn/book/106884)(用for(i in  obj)),具体讲不上来
      

  3.   

    写了一个类似问题的代码,<html><head>
    <meta http-equiv="Content-Language" content="zh-cn">
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>新建网页 1</title>
    <script language="javascript">
    var select
    function A(){
          select=document.createElement("select");
          for(var i=0;i<=10;i++){
            select.options[i]=new Option(i,i);
            }
    }
    function B(){
    var content=document.getElementById("content");
        content.innerHTML="请选择:";
        content.appendChild(select);
        document.getElementById("layer1").style.display="block";
        }
    function C(){
       document.getElementById("layer1").style.display="none";
       }
    </script>
    </head>
    <body onload="A()">
    <div style="position: absolute; width: 260px; height: 100px; z-index: 1; left: 204px; top: 105px; border: 3px solid #000000;display:none" id="layer1">
     <div id="content"></div></div>
    <p><input type="button" value="显示" name="B3" onclick="B()">&nbsp;&nbsp;
    <input type="button" value="隐藏" name="B4" onclick="C()"></p>
    </body>
    </html>
         把select中到content中时,如果前面加一句 content.innerHTML="请选择:",就会出现:
         第一次点显示时正常,当点了隐藏后,第二次再点显示,那么select中的值会全部丢失!!
         有什么解决方法没有!!谢谢!还有,在firefox下正常,在ie中就会出现上述情况!!
      

  4.   

    <html><head>
    <meta http-equiv="Content-Language" content="zh-cn">
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>新建网页 1</title>
    <script language="javascript">
    var select
    function A(){
          select=document.createElement("select");
          for(var i=0;i<=10;i++){
            select.options[i]=new Option(i,i);
            }
    }
    function B(){
    A();
    var content=document.getElementById("content");
        content.innerHTML="请选择:";
        content.appendChild(select);
        document.getElementById("layer1").style.display="block";
        }function C(){
       document.getElementById("layer1").style.display="none";
       }
    </script>
    </head>
    <body onload="A()">
    <div style="position: absolute; width: 260px; height: 100px; z-index: 1; left: 204px; top: 105px; border: 3px solid #000000;display:none" id="layer1">
     <div id="content"></div></div>
    <p><input type="button" value="显示" name="B3" onclick="B()">&nbsp;&nbsp;
    <input type="button" value="隐藏" name="B4" onclick="C()"></p>
    </body>
    </html>
      

  5.   

    楼上的我意思我明白,
    但我这个项目中,函数A是一个效率比较低的函数,所以我不想在执行B时再执行一次A,因为在我的项目中执行函数A就相当于把页面内容重新获取了一次!!
    谢谢各位!!还有办法没??
      

  6.   

    方法1:
    <script language="javascript">
    var select
    function A(){
          select=document.createElement("select");
          for(var i=0;i<=10;i++){
            select.options[i]=new Option(i,i);
            }
        document.getElementById("content").appendChild(select);
    }
    function B(){
        document.getElementById("layer1").style.display="";
        }function C(){
       document.getElementById("layer1").style.display="none";
       }
    </script>
    </head>
    <body onload="A()">
    ...
      

  7.   

    方法2:
    var select=document.createElement("select");
    select.className="selectlist";
    select.id="selectlist";
    for(var i=0;i<100;i++){
       select.options[i]=new Option(i,i);
    }
    function A(){
      document.getElementById("content").appendChild(select);
      document.getElementById("layer1").style.display="";
    }
    function B(){
      document.getElementById("content").removeChild(select);
      document.getElementById("layer1").style.display="none";
    }
      

  8.   

    这个我测试了,百分百没问题!放心使用
    <html><head>
    <meta http-equiv="Content-Language" content="zh-cn">
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>新建网页 1</title>
    <script language="javascript"> var selectCon = null;
     function A(){
      selectCon = document.createElement("select");
    for(var i = 0; i<4; i++){
    selectCon.options[i] = new Option(i,i);
    }
     }
     function B(){
      var content = document.getElementById("content");
    document.getElementById("textId").innerHTML ="请选择:";
    content.appendChild(selectCon);
    document.getElementById("layer1").style.display = "";
     }
     function C(){
    document.getElementById("layer1").style.display = "none";
     }
    </script>
    </head>
    <body onload="A()">
    <div style="position: absolute; width: 260px; height: 100px; z-index: 1; left: 204px; top: 105px; border: 3px solid #000000;display:none" id="layer1">
     <div id="content"><span id="textId"></span></div></div>
    <p><input type="button" value="显示" name="B3" onclick="B()">&nbsp;&nbsp;
    <input type="button" value="隐藏" name="B4" onclick="C()">
    </p>
    </body>
    </html>