Frage jQuery erhält spezifischen Options-Tag-Text


Gut, sagen Sie, ich habe Folgendes:

<select id='list'>
    <option value='1'>Option A</option>
    <option value='2'>Option B</option>
    <option value='3'>Option C</option>
</select>

Wie würde der Selektor aussehen, wenn ich "Option B" bekommen möchte, wenn ich den Wert "2" habe?

Bitte beachten Sie, dass dies nicht fragt, wie man das bekommt ausgewählt Textwert, aber nur einer von ihnen, ob ausgewählt oder nicht, abhängig vom Attribut value. Ich habe es versucht:

$("#list[value='2']").text();

Aber es funktioniert nicht.


1137
2017-10-13 04:06


Ursprung


Antworten:


Es sucht nach einem Element mit ID list welches eine Eigenschaft hat value gleich 2. Was du willst ist das option Kind des list.

$("#list option[value='2']").text()

1051
2017-10-13 04:08



Wenn Sie die Option mit einem Wert von 2 verwenden möchten, verwenden Sie

$("#list option[value='2']").text();

Wenn Sie die Option auswählen möchten, die gerade ausgewählt ist, verwenden Sie

$("#list option:selected").text();

1238
2018-05-15 15:52



Dies funktionierte perfekt für mich, ich suchte nach einer Möglichkeit, zwei verschiedene Werte mit Optionen zu senden, die von MySQL generiert wurden, und das Folgende ist generisch und dynamisch:

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

Wie in einem der Kommentare erwähnt. Damit konnte ich eine dynamische Funktion erstellen, die mit allen meinen Auswahlfeldern funktioniert, die beide Werte, den Optionswert und den Text enthalten sollen.

Vor ein paar Tagen bemerkte ich, dass bei der Aktualisierung der jQuery von 1.6 auf 1.9 der Website ich diesen Code verwendet, dies zu arbeiten aufhören ... wahrscheinlich war ein Konflikt mit einem anderen Stück Code ... sowieso, die Lösung war, die Option aus dem entfernen find () call:

$(this).find(":selected").text();

Das war meine Lösung ... benutze es nur, wenn du nach der Aktualisierung deiner jQuery Probleme hast.


116
2017-07-29 18:55



Basierend auf dem ursprünglichen von Paolo geposteten HTML, habe ich folgendes gefunden.

$("#list").change(function() {
    alert($(this).find("option:selected").text()+' clicked!');
});

Es wurde getestet, um mit Internet Explorer und Firefox zu arbeiten.


107
2018-05-02 12:25



$("#list option:selected").each(function() {
   alert($(this).text());
});  

für mehrere ausgewählte Werte in der #list Element.


36
2018-06-04 14:30



  1. Wenn nur ein select-Tag auf der Seite vorhanden ist, können Sie select innerhalb der ID 'list' angeben

    jQuery("select option[value=2]").text();
    
  2. Um ausgewählten Text zu erhalten

    jQuery("select option:selected").text();
    

36
2018-06-13 03:45



Versuche Folgendes:

$("#list option[value=2]").text();

Der Grund, warum Ihr ursprüngliches Snippet nicht funktionierte, liegt darin, dass Ihr OPTION Tags sind Kinder für Ihre SELECT Tag, der die hat id  list.


23
2017-10-13 04:08