laogao3232 发表于 2008-4-7 14:48

将字符串数组放入select的options中

如题,我已经研究好几天了,帮帮忙。下面是代码!
function stunames()
{
if (xmlHttp.readyState == 4)
{
   if (xmlHttp.status == 200)
   {
    resText = xmlHttp.responseText
    each=resText.split("|");
     buildSelect(each, document.getElementById("name"),"请选择所在专业");
   }
}
}
function buildSelect(str,sel,label){
alert(str.length)
for(var i=0;i<str.length;i++)
alert(str[i]);
  sel.options[i].text=str[i];
  sel.options[i].value=str[i];
//sel.options[sel.options.length]=new option(str[i],str[i])
  alert("ok");

都不行,哪位帮忙该该!

laogao3232 发表于 2008-4-7 15:03

帮帮忙阿

我实在是没办法了!

laogao3232 发表于 2008-4-8 14:43

那位高手会阿!
help me,help you!

hwoarangzk 发表于 2008-4-8 14:53

你id先不要取name,出现什么错误啊?

徐志摩 发表于 2008-4-10 11:21

[quote][bo]以下是引用 [un]laogao3232[/un] 在 2008-4-7 14:48 的发言:[/bo]
   function buildSelect(str, sel, label){
                alert(str.length);
                for (var i = 0; i < str.length; i++) {
                      sel.options[i].text = str[i];
                      sel.options[i].value = str[i];
                }
[/quote]

问题出在上面的代码中.   
上述代码只是改变select中对应循环中索引的option的text以及value,但是当select的options.length为0,也就是select中没有任何的option的时候,
上述程序会在执行第二遍for循环时,报错。因为sel.options[1]不存在,类似于下标越界之类的错误。

提供一下代码片段仅供参考:
[code]
           function buildSelect(str, sel, label){
                alert(str.length);
                for (var i = 0; i < str.length; i++) {
                    alert(sel.options.length);
                    var op=new Option(str[i],str[i]);
                    sel.options.add(op);
                }
            }
[/code]

[[it] 本帖最后由 徐志摩 于 2008-4-10 12:20 编辑 [/it]]

laogao3232 发表于 2008-4-10 16:19

谢谢

哦了

页: [1]

编程论坛