2010-11-09 90 views
0

我有一個在我的服務器端代碼中動態創建的下拉元素列表。更改動態創建的下拉列表的值

<select id="color1"> 
<option value="blue">blue</option> 
<option value="red">red</option> 
<option value="green">green</option> 
</select> 
<select id="color2"> 
<option value="white">white</option> 
<option value="orange">orange</option> 
<option value="green">green</option> 
</select> 
<select id="color3"> 
<option value="black">black</option> 
<option value="pink">pink</option> 
<option value="brown">brown</option> 
</select> 
<select id="color4"> 
<option value="yellow">yellow</option> 
<option value="black">black</option> 
<option value="green">green</option> 
</select> 

我需要在jQuery來編寫代碼來改變基於選擇要素之一的選擇按鈕點擊所有的SELECT值的值。

例如:如果我在第一個SELECT中選擇紅色,則所有SELECT元素值應該更改爲紅色。如果該值已經存在於目標SELECT中,我們只需要選擇該值,否則我們需要追加它。

是否有可能在jQuery中編寫它?

+0

你有2個選擇? – 2010-11-09 16:10:09

+1

你能告訴我們你的html代碼嗎? – Alpesh 2010-11-09 16:11:04

+0

對不起 - 我現在編輯並提出了整個問題。 – 2010-11-09 16:14:29

回答

0
$selected = $('#color1 option:selected'); 
val = $selected.attr('value'); 
$('select:not(#color1)').each(function(i) { 
    $opt = $('option[value='+val+']', $(this)); 
    if(!$opt.length) { 
     $(this).append($selected).attr('selected', 'selected'); 
    } else { 
     $opt.attr('selected', 'selected'); 
    } 
}); 

雖然沒有測試過。希望這是一個很好的基礎。不要忘記將其附加到#color1select事件處理程序或您所選按鈕的click處理程序中。

+0

感謝pestaa。你能解釋我這一行 - $ t = $(el) – 2010-11-09 16:28:31

+0

糟糕,我有一個錯字。等一下。 :) – pestaa 2010-11-09 16:29:57

+0

所以它的目的只是使用一個快捷方式,但顯然不需要那麼多,所以我們走了。 '$(this)'指向當前迭代中的'select' DOM對象,並將其轉換爲一個jQuery對象。 – pestaa 2010-11-09 16:31:16