831 Stimmen

Wie wählt man eine bestimmte Option in einem SELECT-Element in jQuery?

Wenn Sie den Index, den Wert oder den Text kennen. auch wenn Sie keine ID für eine direkte Referenz haben.

Diese , este y este sind alles hilfreiche Antworten.

Beispiel Markierung

<div class="selDiv">
  <select class="opts">
    <option selected value="DEFAULT">Default</option>
    <option value="SEL1">Selection 1</option>
    <option value="SEL2">Selection 2</option>
  </select>
</div>

66 Stimmen

$("#my_select").val("the_new_value").change(); ... ... von also

10voto

Jay Corbett Punkte 27123

Beantwortung meiner eigenen Frage zur Dokumentation. Ich bin sicher, es gibt andere Möglichkeiten, dies zu erreichen, aber dies funktioniert und dieser Code ist getestet.

<html>
<head>
<script language="Javascript" src="javascript/jquery-1.2.6.min.js"></script>
<script type="text/JavaScript">

$(function() {
    $(".update").bind("click",      // bind the click event to a div
        function() {
            var selectOption = $('.selDiv').children('.opts') ;
            var _this = $(this).next().children(".opts") ;

            $(selectOption).find("option[index='0']").attr("selected","selected");
//          $(selectOption).find("option[value='DEFAULT']").attr("selected","selected");
//          $(selectOption).find("option[text='Default']").attr("selected","selected");

//          $(_this).find("option[value='DEFAULT']").attr("selected","selected");
//          $(_this).find("option[text='Default']").attr("selected","selected");
//          $(_this).find("option[index='0']").attr("selected","selected");

    }); // END Bind
}); // End eventlistener

</script>
</head>
<body>
<div class="update" style="height:50px; color:blue; cursor:pointer;">Update</div>
<div class="selDiv">
        <select class="opts">
            <option selected value="DEFAULT">Default</option>
            <option value="SEL1">Selection 1</option>
            <option value="SEL2">Selection 2</option>
        </select>
    </div>
</body>
</html>

10voto

Nick Tsai Punkte 3357

Zum Einstellen des Auswahlwerts bei ausgewählter Triggerung:

$('select.opts').val('SEL1').change();

Zum Einstellen von Optionen aus einem Bereich:

$('.selDiv option[value="SEL1"]')
    .attr('selected', 'selected')
    .change();

Dieser Code verwendet den Selektor, um das ausgewählte Objekt mit der Bedingung herauszufinden, und ändert dann das ausgewählte Attribut durch attr() .


Außerdem empfehle ich, Folgendes hinzuzufügen change() Ereignis nach dem Setzen des Attributs auf selected Dadurch wird der Code geschlossen, um die Auswahl durch den Benutzer zu ändern.

8voto

perumal N Punkte 476

Versuchen Sie dies

Sie verwenden einfach select field id anstelle von #id (z. B. #select_name)

anstelle von Optionswert Verwenden Sie Ihre Select-Option Wert

 <script>
    $(document).ready(function() {
$("#id option[value='option value']").attr('selected',true);
   });
    </script>

7voto

Miguel Punkte 2843

Ich verwende dies, wenn ich den Index der Liste kenne.

$("#yourlist :nth(1)").prop("selected","selected").change();

Dadurch kann sich die Liste ändern und das Änderungsereignis ausgelöst werden. Das ":nth(n)" zählt ab Index 0

5voto

user2606817 Punkte 115

Ich nehme an:-

$("select#my-select option") .each(function() { this.selected = (this.text == myVal); });

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