浏览器中立方式在javascript中为选择元素添加选项

Gle*_*enn 9 javascript

我刚学到一些有趣的东西.IE 6中javascript选择对象的add方法只接受一个参数.当你传递两个参数,我认为这是它抛出一个错误的标准,即使是记录在MSDN网站.

我的问题是这个.在javascript中以编程方式将选项元素添加到select元素的最佳实践建议是什么?

  • 根据用户代理的值以不同方式调用add方法?
  • 将select对象包装在提供正确方法签名的类中?
  • 使用javascript库为您执行此操作(指定哪个库)?

Der*_*k H 12

添加新的选项类型至少适用于IE6及更高版本

function addOption(selectID, display, value)
{
  var obj = document.getElementById(selectID);
  obj.options[obj.options.length] = new Option(display, value);
}
Run Code Online (Sandbox Code Playgroud)

另外在Firefox 2,3,Opera 8,9.5和Safari 4中成功测试.IE4失败:(

  • 但我需要IE 4解决方案. (3认同)

San*_*ket 6

您可以使用try-catch块来执行此操作:

              try
    {
        //Standards compliant
        list.add(optionTag, null);
    }
    catch (err)
    {
        //IE
        list.add(optionTag);
    }
Run Code Online (Sandbox Code Playgroud)