2014-12-15 4 views
5

haben eine Standard-Auswahlfeld in einem span

Beispiel hier ist http://jsfiddle.net/pzphbnxb/18/

<span id="all_locations"> 

<select name="united_kingdom" id="united_kingdom" class="location" > 
<option value="blank">Select</option> 
<option value="england">England</option> 
</select> 

</span>  

1) Klicken Sie auf das Auswahlfeld und ändern Sie den Wert.

2) Als Ergebnis erhalten neben Auswahlbox

3) anzuzeigen Wenn ich auf der nächsten Auswahlfeld klicken, ich will (zum Beispiel) id des angeklickten Auswahlbox alarmieren. Aber ich sehe Warnung der Auswahlbox oben.

Hier ist jquery

$(document).on('change', '.location', function(){ 

$('#all_locations').append('<select name="loc_in_england" id="loc_in_england" class="location" ><option value="blank">Select</option><option value="london">London</option>');  

alert ($('.location').find(":selected").val() + ' selected val'); 
alert($(".location").attr('id') + ' select id');  

}); //$(document).on('change'  

Ich meine, klickte ich '.location', klickte bestimmte Auswahlbox, i attr('id') von geklickt Klasse erhalten müssen. Warum bekomme ich attr('id') der Klasse der ersten Auswahlbox?

Muss ich etwas wie .closest verwenden, um die ID der angeklickten Auswahlbox zu erhalten? Wenn .closest, dann was am nächsten?

+0

Sie verwenden dieselbe ID für jede nach dem ersten auswählen, die Verwirrung zu Browser als Nutzer als auch verursacht . – John

+0

Sie meinen 'id =" loc_in_england "' es ist nur im Beispiel. Tatsächlich wird es nur einmal angezeigt. – user2118559

Antwort

6

Verwendung $ (this) DEMO

$(document).on('change', '.location', function(){ 

// alert('test'); 

$('#all_locations').append('<select name="loc_in_england" id="loc_in_england" class="location" ><option value="blank">Select</option><option value="london">London</option>');  


alert ($(this).find(":selected").val() + ' selected val'); 
alert($(this).attr('id') + ' select id');  

}); //$(document).on('change'  
Verwandte Themen