web开发的菜鸟,有两个问题,希望能有人给解答一下,谢谢了:)1。比如原来父窗口中的下拉框有两个option,在子窗口的javascript中如何改变它的个数?HeadName为父窗口中select框的name.
2。在javascript函数中怎样拼写数组?
子窗口代码:
<script language="javascript">
<!--
var i;
var o = self.opener.document.getElementById("HeadName");
     for(i=0;i<<%=iCount%>;i++){
o.options[i+1].text = "<%=item(i)%>";//item(i)这样写是不对的,我想得到这个值该怎么拼写呢?就是怎样把javascript中的这个i传给VBscript的数组变量item?
}
window.close();   
-->
</script>

解决方案 »

  1.   

    <script language="javascript">
    function test(){

      var obj=opener.HeadName;
      //删除最后一项
      if (obj) obj.options.remove(obj.options.length-1);
      else alert("对象没有获得!")
    }
    </script>
      

  2.   

    2: 变量i是前台的,不能这样直接传给后台。
    改成这样:
    <script language="javascript">
    <!--
    var i;
    var o = self.opener.document.getElementById("HeadName");
    <%
    for(int i=0;i<iCount;i++){
    out.println("o.options["+i+"].text = '"+item(i)+"';");
    }
    %>
    window.close();   
    -->
    </script>
      

  3.   

    这样即可:
    <script language="javascript">
    <!--
    var i;
    var o = self.opener.document.getElementById("HeadName");
         o.options.remove(0); //0为下拉框option的Index;
             window.close();   
    -->
    </script>
      

  4.   

    1.不只是减少,我要是增加option怎么办?
    2。试了out.println("o.options["+i+"].text = '"+item(i)+"';");这个,不对阿!
      

  5.   

    1 增加Option: HeadName.options.add(new Option("text","value"))
    2 错误信息?
      

  6.   

    <script language="javascript">
    <!--
    var i;
    var o = self.opener.document.getElementById("HeadName");
    for(int i=0;i<iCount;i++){
    var op= new Option("text" + i, item(i)); 
    o.options[o.options.length] = op;
    }
    window.close();
    -->
    </script>
      

  7.   

    <script language="javascript">
    <!--
    var i;
    var o = self.opener.document.getElementById("HeadName");
        o.options.remove(0); //0为下拉框option的Index; 减少    //增加
       var option = new Option("newValue","newText");
       o.options.add(option);         window.close();  
    -->
    </script>
      

  8.   

    <script language="javascript">
    <!--

    var o = self.opener.document.getElementById("HeadName");
    var i;
    var len = o.options.length;
    for(i=len-1;i>=0;i--){
    o.options.remove(i);//删除没问题
    }
    for(i=0;i<4;i++){
    //增加该怎么写?
                 /*
                  var   oOption   =   document.createElement("OPTION");   
            oOption.text   =   'Description';   
          oOption.value   =   'SQLValue';  
                 o.options.add(oOption); */这个方法不行
               /* var option = new Option("newValue","newText");
                o.options.add(option);
               */这个也出错
    }

    window.close();   
    -->
    </script>
    我怎么给你们分?
      

  9.   

    o.options[i+1].text = "<%=item(i)%>";//这个是不可能实现的,
      

  10.   

    经过两天的研究,我终于弄明白了,下面是实现的代码,遇到类似问题可以参考:
    <script language="javascript">
    <!--
           var o = self.opener.document.getElementById("HeadName");
    var i;
    var len = o.options.length;
    for(i=len-1;i>=0;i--){
    o.options.remove(i);//删除父窗口的下拉框
    }
    <% 
    for i=1 to iCount
    %>
    var   oOption = self.opener.document.createElement("OPTION");
                       //一定要创建父窗口的OPTION,才能被add到父窗口中去
    oOption.value   =   '<%=i-1%>'; 
    oOption.text   =   '<%=Items(i-1)%>';     
       o.add(oOption); //增加下拉框个数
     <% 
     next 
     %>
     o.selectedIndex = 1;
    window.close();