javascript - name - jquery select option value




jQuery erhält spezifischen Options-Tag-Text (13)

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?

Beachten Sie, dass hier nicht gefragt wird, wie der ausgewählte Textwert abgerufen werden soll, sondern nur eine davon, ob ausgewählt oder nicht, abhängig vom Wertattribut. Ich habe es versucht:

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

Aber es funktioniert nicht.


  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();
    

Als alternative Lösung können Sie auch einen Kontextteil des jQuery-Selektors verwenden , um <option> -Elemente mit value="2" in der Dropdown-Liste zu finden:

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

Beim "Durchschleifen" dynamisch erzeugter Elemente mit einer .each (function () ...): $("option:selected").text(); und $(this + " option:selected").text() gab den ausgewählten Optionstext nicht zurück, sondern war null.

Aber die Lösung von Peter Mortensen hat funktioniert:

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

Ich weiß nicht, warum der übliche Weg nicht in einem .each() (wahrscheinlich meinem eigenen Fehler) gelingen kann, aber danke, Peter. Ich weiß, dass das nicht die ursprüngliche Frage war, aber ich erwähne es "für Neulinge, die über Google kommen."

Ich hätte mit $('#list option:selected").each() außer dass ich auch etwas vom select-Element holen musste.


Benutzen:

function selected_state(){
    jQuery("#list option").each(function(){
        if(jQuery(this).val() == "2"){
            jQuery(this).attr("selected","selected");
            return false;
        }
    });
}

jQuery(document).ready(function(){
    selected_state();
});

Dies ist eine alte Frage, die seit einiger Zeit nicht mehr aktualisiert wurde

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

Ich hoffe das hilft :-)



Ich benötigte diese Antwort, da es sich um ein dynamisch umgewandeltes Objekt handelte und die anderen Methoden hier nicht zu funktionieren schienen:

element.options[element.selectedIndex].text

Dies verwendet natürlich das DOM Objekt, anstatt seinen HTML-Code mit nodeValue, childNodes usw. zu analysieren.


Ich war auf der Suche nach val nach internen Feldnamen anstelle von ID und kam von Google zu diesem Beitrag, die Hilfe, aber fand nicht die Lösung, die ich brauche, aber ich habe die Lösung und hier ist es:

Dies könnte jemandem helfen, nach einem ausgewählten Wert mit einem internen Feldnamen zu suchen, anstatt eine lange ID für SharePoint-Listen zu verwenden:

var e = $('select[title="IntenalFieldName"] option:selected').text(); 

Ich wollte eine dynamische Version für select multiple, die anzeigen würde, was auf der rechten Seite ausgewählt ist (ich wünschte, ich hätte gelesen und $(this).find ... früher gesehen):

<script type="text/javascript">
    $(document).ready(function(){
        $("select[showChoices]").each(function(){
            $(this).after("<span id='spn"+$(this).attr('id')+"' style='border:1px solid black;width:100px;float:left;white-space:nowrap;'>&nbsp;</span>");
            doShowSelected($(this).attr('id'));//shows initial selections
        }).change(function(){
            doShowSelected($(this).attr('id'));//as user makes new selections
        });
    });
    function doShowSelected(inId){
        var aryVals=$("#"+inId).val();
        var selText="";
        for(var i=0; i<aryVals.length; i++){
            var o="#"+inId+" option[value='"+aryVals[i]+"']";
            selText+=$(o).text()+"<br>";
        }
        $("#spn"+inId).html(selText);
    }
</script>
<select style="float:left;" multiple="true" id="mySelect" name="mySelect" showChoices="true">
    <option selected="selected" value=1>opt 1</option>
    <option selected="selected" value=2>opt 2</option>
    <option value=3>opt 3</option>
    <option value=4>opt 4</option>
</select>

Sie können ausgewählten Optionstext mit der Funktion .text();

Sie können die Funktion wie folgt aufrufen:

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

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();

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

Lassen Sie ein Leerzeichen hinter dem ID-Selektor stehen.


$(this).children(":selected").text()




jquery-selectors