2016-02-21 38 views
0

我想學習jQuery,我希望所有三個相同的選擇框在選擇時更新變量id。如何從jQuery中的所有3個相同的複選框獲得id

我可以得到第一個選擇框來顯示警報中的ID,但無法弄清楚如何讓其他兩個選擇框工作。

我做錯了.each,因爲它沒有針對#mySelect的ID每個選擇框。

我希望所有三個選擇框與第一個選擇框完全相同。

謝謝!

http://jsfiddle.net/BxKvB/113/

<select name="mySelect" id="selectID"> 
<option id="myid1" value="somevalue1">somevalue</option> 
<option id="myid2" value="somevalue2">somevalue</option> 
<option id="myid3" value="somevalue3">somevalue</option> 
</select> 

<select name="mySelect" id="selectID"> 
<option id="myid1" value="somevalue1">somevalue</option> 
<option id="myid2" value="somevalue2">somevalue</option> 
<option id="myid3" value="somevalue3">somevalue</option> 
</select> 

<select name="mySelect" id="selectID"> 
<option id="myid1" value="somevalue1">somevalue</option> 
<option id="myid2" value="somevalue2">somevalue</option> 
<option id="myid3" value="somevalue3">somevalue</option> 
</select> 

<script> 
    $('#selectID').each(function() { 
     $(this).change(function() { 
     var optionID = $('option:selected').attr('id'); 
     alert(optionID); 
     }); 
    }); 

    </script> 
+0

標識** **必須是唯一的。另外,我在您發佈的代碼中看不到一個複選框。 – j08691

+0

是的,我看到我寫了複選框而不是選擇框。我的錯。 謝謝 –

回答

-2
$('select[name="mySelect"]').each(function() { 
    $(this).change(function() { 
    var optionID = $('option:selected').attr('id'); 
    alert($(this).attr("class") + optionID); 
    }); 
}); 

<select name="mySelect" id="selectID" class="1"> 
<option id="myid1" value="somevalue1">somevalue</option> 
<option id="myid2" value="somevalue2">somevalue</option> 
<option id="myid3" value="somevalue3">somevalue</option> 
</select> 

<select name="mySelect" id="selectID" class="2"> 
<option id="myid1" value="somevalue1">somevalue</option> 
<option id="myid2" value="somevalue2">somevalue</option> 
<option id="myid3" value="somevalue3">somevalue</option> 
</select> 

<select name="mySelect" id="selectID" class="3"> 
<option id="myid1" value="somevalue1">somevalue</option> 
<option id="myid2" value="somevalue2">somevalue</option> 
<option id="myid3" value="somevalue3">somevalue</option> 
</select> 
<span id="result"></span> 
0

有很多方法可以做到這一點。例如使用同一類的所有複選框,試試這個:

<select class="something" name="mySelect" id="selectID"> 
<option id="myid1" value="somevalue1">somevalue</option> 
<option id="myid2" value="somevalue2">somevalue</option> 
<option id="myid3" value="somevalue3">somevalue</option> 
</select> 

<select class="something" name="mySelect" id="selectID"> 
<option id="myid1" value="somevalue1">somevalue</option> 
<option id="myid2" value="somevalue2">somevalue</option> 
<option id="myid3" value="somevalue3">somevalue</option> 
</select> 

jQuery中:

$(".something").change(function() { 
     var optionID = $(this).children(":selected").attr("id"); 
     alert(optionID); 
    }); 
+0

您可以隨時編輯您的答案,而不是刪除一個並添加另一個。 –

0

簡單,

$('#selectID').find('option').change(function(){ 
alert($(this).attr('id')); 
}); 

記住#selectID必須是唯一的。

每一個還比較通用的東西選擇:

$('select').find('option').change(function(){ 
    alert($(this).attr('id')); 
}); 
相關問題