本帖最后由 KL998877321 于 2013-05-17 22:16:56 编辑

解决方案 »

  1.   


    function getOptions()
      {
      var x=document.getElementById("mySelect").options;
      for (var i=0;i<x.length;i++)
        {
           alert(i);
           document.write(x[i].text)
           document.write("<br />")
        }
      }
      

  2.   

    for (i=0;i<x.length;i++)
    --》
    for (i=0;i<x.options.length;i++)
      

  3.   

    document.write()一般用于页面onload的时候(解析)。如果页面已经onload完了,也就是页面解析完毕了,再调用docume.write()的时候。那么,write会清空页面的内容(个人认为,应该在<head>里写的脚本等都也会被刷掉)。下面两个例子来说明: (错误示范)想在屏幕中每个一秒就打出1,2,3,4.<html><head><title>....</title>
    <script language="javascript" type="text/javascript">
    var i=1;
    function f()
    {
      document.write(i+"<br/>");
        ++i;
    }f();
    setInterval("f()",10000);
    </script>
    [code=javascript]</head><body>abc</body></html>这样窗口先输出"abc",一秒后窗口输出:1;显然这样不是我们想要的效果1,2,3,4.。。原因在于当窗口第一次解析完成时就输出了“abc”,一秒后执行f();由于文档解析完成了,再调有write()时就会将窗口的内容刷掉;所以第一次执行了docume.write()后网页的代码相当于
    <html><head><title></title></head><body>1</body></html> 下面是一个解决该问题的例子:<html>
    <head>
    <script type="text/javascript">
    function getOptions()
      {
      var x=document.getElementById("mySelect");
      var y="";
      for (i=0;i<x.length;i++)
        {
        y+=x.options[i].text;
        y+="<br />";
        }
      document.write(y);
      }
    </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>
      

  4.   

    这个没区别吧,我已经在循环里面写了options
      

  5.   

    x.length和x.options.length是一样的吧。
      

  6.   

    这个没区别吧,我已经在循环里面写了optionsx.length和x.options.length你.高度,和你.儿子.高度
    一回事?