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 />") } }
for (i=0;i<x.length;i++) --》 for (i=0;i<x.options.length;i++)
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>
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 />")
}
}
--》
for (i=0;i<x.options.length;i++)
<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>
一回事?