2013-08-23 114 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