下面是我写的一段JS代码,作用是点击按钮后把DropDown里面的项写出来,可是为什么只写出第一个就中止了呢?<html>
<head>
<script type="text/javascript">
function getOptions()
  {
  var x=document.getElementById("mySelect");
  for (i=0;i<x.length;i++)
    {
     document.write(x.options[i].text)
    }
  }
</script>
</head>
<body><form>
Select your favorite fruit:
<select id="mySelect">
  <option>Apple</option>
  <option>Orange</option>
  <option>Pineapple</option>
  <option>Banana</option>
</select>
<br /><br />
<input type="button" onclick="getOptions()" value="Output all options">
</form></body>
</html>下面是我改写的程序,是可以输出的: 
<html>
<head>
<script type="text/javascript">
function getOptions()
  {
  var x=document.getElementById("mySelect");
  var list=""
  for (i=0;i<x.length;i++)
    {
    alert(x.options[i].text)
    //document.write(x.options[i].text)  //这句话怎么就不能循环呢?
    list=list+x.options[i].text+","    
    }
  var splitlist=list.split(",")
  for(j=0;j<splitlist.length;j++)
  {
   document.write(splitlist[j]) //这里就可以循环,为什么上面那里不可以?
   }
 }
</script>
</head>
<body><form>
Select your favorite fruit:
<select id="mySelect">
  <option>Apple</option>
  <option>Orange</option>
  <option>Pineapple</option>
  <option>Banana</option>
</select>
<br /><br />
<input type="button" onclick="getOptions()" value="Output all options">
</form></body>
</html>JS高手指点!·····················

解决方案 »

  1.   

    document.Write()
    打印完会终止的
    所以只显示第一个啊
      

  2.   

    那为什么我下面改写的这里可以循环呢?
    for(j=0;j<splitlist.length;j++)
      {
       document.write(splitlist[j]) //这里就可以循环,为什么上面那里不可以?
       }
      

  3.   

    for (i=0;i<x.length;i++)
        {
        list=list+x.options[i].text+","    
        document.write(x.options[i].text)  //这样看下行否    
        }
      

  4.   

    不行的。真是搞不懂 document.write的脾气
      

  5.   

    因为你document.write以后页面的控件已经全部消失了,所以循环无法继续进行.
    不信的话,你可以在document.write后面尝试alert(x)看看
      

  6.   

    zorou_fatal(The world and system is even) 分析的有道理
      

  7.   

    是哦,alert没反应, 那该怎么写这个循环呢?
      

  8.   

    不用document.write呗,用一个DIV来显示也可以啊.
      

  9.   

    <html>
    <head>
    <script type="text/javascript">
    function getOptions()
      {
      var x=document.getElementById("mySelect");
      msg.innerHTML = "";
      for (i=0;i<x.length;i++)
        {
         //document.write(x.options[i].text);
         msg.innerHTML += x.options[i].text;
        }
      }
    </script>
    </head>
    <body><form>
    Select your favorite fruit:
    <select id="mySelect">
      <option>Apple</option>
      <option>Orange</option>
      <option>Pineapple</option>
      <option>Banana</option>
    </select><br /><br />
    <input type="button" onclick="getOptions()" value="Output all options">
    <div id="msg"></div>
    </form></body>
    </html>
      

  10.   

    恩,document写的时候为什么页面上的控件就没有了?response.write直接在顶端写出,而document.write写的时候页面内的控件却消失了~!谢谢大家,div的 innerHTML是很好做,只是搞不懂本质的原理。为什么会消失呢
      

  11.   

    When you call the write( ) method, it opens and clears the document if the document is not in the process of being opened and parsed when the write( ) method is called, so it can be dangerous.