2013-08-23 64 views
1

我使用下面的函数来创建一个选项添加到我的选择框动态创建选择框的选项问题

//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 
    } 
  1. __enum被包含的价值和文本的键值对,我们传递给选择选项

  2. obj是选择框OBJ其也动态创建

  3. selected_value是需要在选择框中选择的值。

这里的问题是optn.setAttribute('selected', 'selected')在所有的浏览器都可以正常工作,期望IE8。

我正在寻找一种解决方法,可以让我在所有浏览器中动态设置选定的值。

+0

'$(OBJ)[0] === obj'没有必要让一个jQuery对象如果你不打算使用它。 –

+0

......无论如何,请尝试'optn.selected = true;'来代替。 –

+0

没有'this.val'这样的东西,它是'this.value'? – adeneo

回答

1

我想补充一个选项,一个像这样:

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

下面是一个例子:my fiddle