356 Stimmen

Bei Änderung der Auswahl den Wert des Datenattributs abrufen

Der folgende Code gibt 'undefiniert' zurück...

$('select').change(function(){
    alert($(this).data('id'));
});

<select>
    <option data-id="1">one</option>
    <option data-id="2">two</option>
    <option data-id="3">three</option>
</select>

838voto

Jordan Brown Punkte 13053

Sie müssen die ausgewählte Option finden:

$(this).find(':selected').data('id')

ou

$(this).find(':selected').attr('data-id')

obwohl die erste Methode bevorzugt wird.

45voto

Rich O'Kelly Punkte 40414

Versuchen Sie das Folgende:

$('select').change(function(){
  alert($(this).children('option:selected').data('id'));
});

Ihr Änderungsabonnent abonniert das Änderungsereignis des Selects, so dass die this Parameter ist das Select-Element. Sie müssen das ausgewählte Kind finden, von dem Sie die Daten-ID erhalten.

19voto

Sergey Kovalenko Punkte 221
document.querySelector('select').onchange = function(){   
   alert(this.selectedOptions[0].getAttribute('data-attr')); 
};

15voto

JJaun Punkte 1502

Vielleicht ein eleganterer Weg

$('option:selected', this).data('id')

14voto

Sinan ÇALIŞKAN Punkte 165
$('#foo option:selected').data('id');

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X