function d()
{
for(i=0;i<3;i++)
{document.write(document.form1.select1[i].value+"<br>");}
}
上面是按数组顺序输出一个表单的列表菜单的各个值,表单名为form1,列表菜单名为select1,
为什么我调用此函数输出的总是只有第一个列表的值呢,下面两个的都没有了,到底是为什么啊,我都看了无数遍了,都不知道哪里出问题了,求教?

解决方案 »

  1.   

    尽量不要用 document.write如果你要用. 你可以试试, 把 value 的值放到一个 string 裡. 然后最后一次性全部输出. 你就明白了.
      

  2.   

    你用:document.write
    如果是页面执行完成后去调的函数方法,那它会把原页面的类内覆盖掉,从新去生存了,一旦覆盖,你的js也就没有了。
      

  3.   

    document.write是在pageload的时候使用才行。不然,会把现在的页面刷新掉。
      

  4.   

    你准备循环出来放那里呢,document.write不适合
      

  5.   

    <script> 
    function d()
    {
    var test='';
    for(i=0;i<3;i++)
    {
    test += document.form1.select1.options[i].value+"<br/>"
    }
    document.write(test);
    }
    </script>
    <body>
    <form id="form1" name="form1">
    <select id="select1" name="select1">
    <option value="test0">test0</option>
    <option value="test1">test1</option>
    <option value="test2">test2</option>
    </select>
    <input id="" type="button" value="ok" onclick="d()"/>
    </form>
    </body>
    原因:当document.write的时候会重写你的页面,已经相当一个新的页面,当第二次循环的时候,已经找不到Select1了,所以没值
      

  6.   

    jquery寫法://先在頁面放置一個div id='divShow'
    for(i=0;i<3;i++){
     $('#divShow).append(
    ( $("#select11")get(i).value + '<br />')
     );
    }