2011-01-17 12 views
1

Ich habe die folgende Auswahl:Jquery Auswahl falsch gegangen?

var squad_name= $("#squad option:selected").text(); 

und die HTML sieht hinter wie folgt aus:

<div id="squad"> 
    <label>Squad Type:</label> 
    <select id="choosesquad"> 
     <option value ="0">Choose squad</option> 
    </select> 
    <input id="setsquad" type="button" value="Set"/><br> 

    <div id="unitdiv"> 
    <label>Choose Unit:</label> 
    <select id="chooseunit" class="unit"> 
     <option value ="0">Choose unit</option> 
    </select><br> 
    <label>Number of units:</label> 
    <select id="number" class="unit"> 
     <option value="0">0</option>  
    </select><br> 
</div> 

aus irgendeinem Grund nach dieser Auswahl die squad_name = Choseen Kader 0

Auswählen Einheit nur ich kann nicht herausfinden: was mache ich falsch?

+1

Was erwarten Sie von ihm? Das sieht für mich richtig aus (abgesehen von dem, was aussieht, als müsste es ein Tippfehler sein; sicherlich ist es "Wähle SquareChoose unit0" oder so etwas?) –

Antwort

0

Dies geschieht, weil Sie alle <option> Tags in #squad sind die Auswahl, die mit 3 :selected<option> Tags 3 <select> Tags hat

$("#squad option:selected") wird jede ausgewählte Option aus #choosesquad aggregieren, #chooseunit und #number

aus die Geräusche davon müssen Sie verwenden:

var squad_name = $("#choosesquad option:selected").text(); 
+0

Vielen Dank. Anscheinend war ich vorübergehend blind. – Pillblast

+0

Als Antwort markieren? – hunter

0

Sie müssen .val() not .text() verwenden, um den Wert der Option zu erhalten. Sie wählen auch alle ausgewählten Optionen aus, die in diesem Fall ein Array von 3 abrufen.

0

Der Grund dafür ist, dass $("#squad option:selected") alle Elemente zurückgibt. Wenn Sie also .text() für diese Auswahl aufrufen, wird der gesamte Text in jedem dieser Elemente zurückgegeben.

Der folgende Code werden die Werte erhalten separat

var choosesquad = $("#choosesquad").val(); 
var chooseunit= $("#chooseunit").val(); 
var num = $("#number").val(); 
0

Sie die Auswahl alle option -Tags, die derzeit ausgewählt sind, die man von jedem sein wählen, die text() Funktion speichert den inneren Text aus allen ausgewählten Knoten , was zu den drei Textknoten "Choseen Squad Choose unit 0" führt.