Wie bekomme ich $(this) ausgewählte Option in jQuery?

Lesezeit: 2 Minuten

Der folgende Code funktioniert:

$("#select-id").change(function(){
  var cur_value = $('#select-id option:selected').text();
  . . .
});

So refaktorisieren Sie die zweite Zeile zu:

var cur_value = $(this).***option-selected***.text();

Wofür verwendest du ***option-selected***?

Für den ausgewählten Wert: $(this).val()

Wenn Sie das ausgewählte Optionselement benötigen, $("option:selected", this)

  • Dieser Selektor stellt ein jQ-Objekt bereit, also add .text() erhält seinen Text [$("option:selected", this).text()]

    – Gordon

    4. Dezember 2021 um 0:23 Uhr

Benutzer-Avatar
user56reinstatemonica8

 $(this).find('option:selected').text();

  • Das funktionierte perfekt für mich – ich habe es versucht $("option:selected", this) wie oben erwähnt aber das war problematisch. Ich habe einen Schaltflächenklick verwendet, um den Text des ausgewählten Optionselements an ein anderes div anzuhängen, aber als ich auf die Schaltfläche geklickt habe, hat es tatsächlich das ausgewählte Element geändert … seltsam. Verwende das hier.

    – skwidbreth

    4. April 2016 um 21:30 Uhr

Meiner Meinung nach der beste und kürzeste Weg für Onchange-Ereignisse in der Dropdown-Liste, um die ausgewählte Option zu erhalten:

$('option:selected',this);

um das value-Attribut zu erhalten:

$('option:selected',this).attr('value');

um den angezeigten Teil zwischen den Tags zu erhalten:

$('option:selected',this).text();

In deinem Beispiel:

$("#select-id").change(function(){
  var cur_value = $('option:selected',this).text();
});

  • Nicht verwenden .contextist seit jQuery 1.10 veraltet – api.jquery.com/category/deprecated/deprecated-1.10

    – r4fx

    10. März 2015 um 15:57 Uhr

  • Ja, aber was du meinst ist folgendes: api.jquery.com/context $( “ul”, document.body ).context.nodeName was ich nicht verwende

    – Engelmedien

    12. März 2015 um 6:15 Uhr


  • Ich mag die Antwort, aber warum ist es am besten?

    – Sébastien Gicquel

    10. Oktober 2016 um 14:06 Uhr

Benutzer-Avatar
Satyam Khatri

var cur_value = $('option:selected',this).text();

Benutzer-Avatar
Er Shiming

Das sollte funktionieren:

$(this).find('option:selected').text();

  • Gleiche Antwort wie oben

    – Hugh Seagraves

    5. Dezember 2017 um 19:10 Uhr

  • Innerhalb derselben Minute gepostet!

    – lharby

    17. Oktober 2018 um 14:59 Uhr

Benutzer-Avatar
Platin Azur

Sie können verwenden find So suchen Sie nach der ausgewählten Option, die ein Nachkomme der Knoten ist, auf die das aktuelle jQuery-Objekt zeigt:

var cur_value = $(this).find('option:selected').text();

Da dies wahrscheinlich ein unmittelbares Kind ist, würde ich tatsächlich vorschlagen, es zu verwenden .children stattdessen:

var cur_value = $(this).children('option:selected').text();

  • Gleiche Antwort wie oben

    – Hugh Seagraves

    5. Dezember 2017 um 19:10 Uhr

  • Innerhalb derselben Minute gepostet!

    – lharbi

    17. Oktober 2018 um 14:59 Uhr

Benutzer-Avatar
Thomas

var cur_value = $(this).find('option:selected').text();

Seit option ist wahrscheinlich unmittelbares Kind von select Sie können auch verwenden:

var cur_value = $(this).children('option:selected').text();

http://api.jquery.com/find/

  • Wo bekommt man option-selected ohne Anführungszeichen …?

    – Platin Azur

    4. April 2012 um 13:14 Uhr

  • Das war ein Tippfehler als ich gepostet habe. Antwort korrigiert.

    – Thomm

    4. April 2012 um 13:17 Uhr

  • find('option:selected') gibt mir einen leeren String zurück. Welche Version von jQuery wird benötigt? Ich arbeite in 1.6.1. children('option:selected') funktioniert.

    – B Sieben

    4. April 2012 um 13:20 Uhr


  • option:selected gibt es seit v1.0 api.jquery.com/s selected-selector

    – Thomm

    4. April 2012 um 13:24 Uhr

1227050cookie-checkWie bekomme ich $(this) ausgewählte Option in jQuery?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy