帮忙解释一下一段JavaScript代码

来源:百度知道 编辑:UC知道 时间:2024/06/09 11:17:45
function selectScroller(n)
{
optlist=document.scrollform.scroller
optlist[optlist.length] = new Option(optlist[0].text, "", false, false);
optlist[0]=null;
optlist.selectedIndex = -1;
n=(n+1) % optlist.length;
setTimeout("selectScroller("+n+")",2000);
}
其中<form name="scrollform">
<select name="scroller" size="8">
主要解析一下Option(optlist[0].text, "", false, false)这句
那么optlist.selectedIndex = -1;又是什么意思呢,还有+n+是干嘛的,转换类型?不可以直接用n吗?

optlist[optlist.length] = new Option(optlist[0].text, "", false, false);
假设optlist的长度是5
也就是说optlist[4]是最后的
那么optlist[optlist.length]=optlist[5]
也就是说optlist[optlist.length]相当于追加的一条
这行代码就是在optlist尾部追加一条记录
new Option(optlist[0].text, "", false, false)就是追加的内容
optlist[0].text是value ""是name 第一个false是非multiple模式 该项是否是被选中的判断 第二个false是multiple模式 该项是否是被选中的判断

补充:
optlist.selectedIndex = -1
在非multiple模式中(默认就是非multiple模式)选中索引为-1的项目 因为第一项是0 所以-1项什么内容都没有 效果就是 在下拉菜单中 显示空白

setTimeout("selectScroller("+n+")",2000);这是个是计时器
2000毫秒后执行 selectScroller(n)一次
因为setTimeout本身也在该function中 所以会每隔2000毫秒执行一次
+n+ 这个是因为setTimeout的第一个参数要求是 字符串 可是写成"selectScroller(n)"的话 该function接收的参数 是字符'n' 而不是 变量n了 所以写成 "selectScroller("+n+")" 就是在这里读出 变量n的内容 将其内容传到 selectScroller()函数中
假设n=5 那么"selectScroller("+n+")"就相当于"selectScroller(