Javascript IE8中的动态创建选择框选项问题

Javascript IE8中的动态创建选择框选项问题,javascript,jquery,html,frontend,Javascript,Jquery,Html,Frontend,我正在使用以下函数创建一个“将选项添加到我的选择框” //add options to the requested select box addOptionsToSelect : function(__enum , obj, selected_value) { $(__enum).each(function(i){ var optn = new Option(this.text, this.val) if(selected_value === this

我正在使用以下函数创建一个“将选项添加到我的选择框”

  //add options to the requested select box
  addOptionsToSelect : function(__enum , obj, selected_value) {
    $(__enum).each(function(i){
       var optn = new Option(this.text, this.val)
       if(selected_value === this.val){  optn.setAttribute('selected', 'selected') } 
       $(obj)[0].options.add(optn); 
    });
    return obj
  }
  • \uuu enum
    是包含值和传递给选择选项的文本的键值对

  • obj
    是也动态创建的选择框obj

  • selected\u value
    是需要在选择框中设置为选中的值

  • 这里的问题是
    optn.setAttribute('selected','selected')
    在除IE8之外的所有浏览器中都能正常工作


    我正在寻找一种解决方法,使我能够在所有浏览器中动态设置所选值。

    我想在类似的示例中添加一个选项:

    var select = document.getElementById("drop-down");
    var newOption = document.createElement("option");
    newOption.innerHTML = 'hello';
    select.appendChild(newOption);
    

    下面是一个示例:

    我想在类似的示例中添加一个选项:

    var select = document.getElementById("drop-down");
    var newOption = document.createElement("option");
    newOption.innerHTML = 'hello';
    select.appendChild(newOption);
    

    下面是一个示例:

    $(obj)[0]==obj
    如果不打算使用jQuery对象,则无需创建它……在任何情况下,请尝试
    optn.selected=true
    相反。没有
    this.val
    ,而是
    this.value
    ?@adeneo:“1.
    \uuuu enum
    是包含值和传递给select选项的文本的键值对。您的选项元素是否具有
    value
    属性?如果是,则尝试
    obj.value=this.val
    if
    语句中。如果这不起作用,那么代码中会出现其他问题。
    $(obj)[0]==obj
    如果不打算使用jQuery对象,则无需创建它……在任何情况下,请尝试
    optn.selected=true
    相反。没有
    this.val
    ,而是
    this.value
    ?@adeneo:“1.
    \uuuu enum
    是包含值和传递给select选项的文本的键值对。您的选项元素是否具有
    value
    属性?如果是,则尝试
    obj.value=this.val
    if
    语句中。如果这不起作用,那么代码中还存在其他问题。