for(i=0; i<e.options.length; i++)
{
if(e.options[i].value == v)
{
e.options[i].selected = true;
}
}     
我实在不想这么写,有直接的操作吗?

解决方案 »

  1.   

    for(i=0; i<e.options.length; i++)
    {
    if(e.options[i].value == v)
    {
    e.options[i].selected = true;
    }
    }     
    我实在不想这么写,有直接的操作吗?
      

  2.   

    all方法是ie的吧
    ff好像不支持
      

  3.   


    <select id=ss>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="paraValue">paraValue</option>
    </select>
    <script language="javascript">
    <!--
    document.getElementById("ss").value ="paraValue"
    //-->
    </script>
      

  4.   


    e.options.length = 0;
    a = rText.split("[|]");
    for (i in a)
    {
    s = a[i].split("[=]");
    varItem = new Option(s[0], s[1]);
    e.options.add(varItem);
    }

    for(i=0; i<e.options.length; i++)
    {
    if(e.options[i].value == v)
    {
    e.options[i].selected = true;
    }
    }    /*
    alert(v);   // 加上这个好使,去掉这个不好使,为什么?
    e.value = v;
    */// e是下拉菜单,a是数组(text和value)
      

  5.   

    IE6没有问题呀<select id=e></select><script language="javascript">
    <!--
    var rText="1[=]1[|]2[=]2[|]paraValue[=]paraValue"
    e.options.length = 0;
    a = rText.split("[|]");
    for (i in a){
    s = a[i].split("[=]");
    varItem = new Option(s[0], s[1]);
    e.options.add(varItem);                    
    }var v=2
    for(i=0; i<e.options.length; i++){
    if(e.options[i].value == v){
    e.options[i].selected = true;
    }
    }    
    //-->
    </script>
      

  6.   

    上面的代码是没有问题,我的问题是e.value=v赋值不好使。好奇怪,我前面延时一会再赋值就可以,直接赋值不可以。
    还发现个问题,我用e.options.add(text,value)添加新项目时,多选时被选中的值有些得不到,不知道什么原因。