2012-11-30 62 views
1

我已經看到,您可以更改選定的下拉項目的值,但我想通過選項ID來做,因爲這些值是動態創建的。我使用下拉菜單創建問卷,問題部分以及上一個/下一個按鈕。下拉列表的值是在php數組中動態創建的。更改所選下拉ID

我有它設置的方式是類似:

<select id="myDropdown"> 
    <option id="1" value="dynamicallycreated1"></option> 
    <option id="2" value="dynamicallycreated2"></option> 
    <option id="3" value="dynamicallycreated3"></option> 
</select> 

的選擇是通過用PHP充當ID數組的索引創建。頁面上有前/後一個按鈕,用於在部分之間前後移動。當用戶點擊下一個或上一個按鈕時,我希望下拉菜單更改爲適當的項目。我可以通過當前的javascript輕鬆獲取索引,因此如何使用此索引作爲ID更改下拉列表?謝謝!

+0

很明顯,不要用1,2,3爲您的ID。這是無效的。 –

+0

如前所述,以數字開頭的'id'是無效的HTML。但爲什麼還要爲此創建'id'?您可以使用jQuery通過其'index'(0,1,2 ...)來訪問'option'項目。 – Sparky

+0

謝謝你們,忘記了用數字開頭的id是無效的。已經排序。 – ad2387

回答

1

我同意李泰勒,你不應該使用1,2,3一樣的ID字段。你可以不是下拉的value屬性使用這些值像

和使用jQuery選擇具有值的元素= 1像

$('#myDropdown').val(1); 
2

在JavaScript中,只是selected屬性設置爲true

var opt = document.getElementById("1"); 
opt.selected = true; 

測試,在Firefox的作​​品。

使用jQuery,這將是:

$("#1").prop('selected', true); 
+0

jquery版本是錯誤的。 –

+0

@azizpunjani你能幫我嗎?我沒有太多jQuery的經驗。 –

+0

'$(「#1」)。prop('selected',true)' –

0

忘掉創建任何特殊id的您的option項目或更改值。只需使用jQuery來獲取index即可。 (注意:如果需要的話,該指數開始於0所以只需添加1這個結果。)

$('#myDropdown').find('option:selected').index(); 

HTML:

<select id="myDropdown"> 
    <option value="dynamicallycreated1">option one</option> 
    <option value="dynamicallycreated2">option two</option> 
    <option value="dynamicallycreated3">option three</option> 
</select>