2017-04-30 4 views
0

I mit 3 Optionen wie folgt ein Auswahlfeld bin mit:jquery wie ein Varibale mit Selektoren kombinieren

<select id="button1"> 
    <option value="a">a</option> 
    <option value="b">b</option> 
    <option value="c">c</option> 
</select> 

und eine Liste, die die Auswahlfeldspiegel

<div class="content" data-name="button1"> 
    <ul> 
    <li>a</li> 
    <li>b</li> 
    <li>c</li> 
    </ul> 
</div 

, was ich versuche zu do ändert die Auswahl remote, wenn auf ein Listenelement geklickt wird. Ich habe so weit gekommen, das funktioniert:

$(".content li").click(function() { 
    var listnumber = $(this).index() 
    $("#button1 option").eq(listnumber).prop('selected', true); 
}); 

Aber dann wollte ich mit entsprechenden Listen mehr Auswahlfelder hinzufügen, aber alle mit dem gleichen Skript

$(".content li").click(function() { 
    var listnumber = $(this).index() 
    var buttonnumber = $(this).parents().eq(1).attr("data-name") 
    $("#" + buttonnumber + "option").eq(listnumber).prop('selected', true); 
}); 

Ich gehe davon aus laufe ich bin nicht Verketten der Selektoren korrekt mit meiner Variablen. Wie wird das richtig gemacht?

+1

Sehr grob fehlt ich sagen könnte man einen Raum fehlt, '$ ("#" + buttonnumber + "Option")' sollte '$ ("#" sein + buttonnumber + "option") '. – undefined

+0

Die Frage ist nicht sehr klar, wo fügen Sie die 'Tasten' hinzu? – Varun

Antwort

0

Ich denke, Sie müssen nur den Inhalt des angeklickten "li" -Elements abrufen, sagen wir, Sie haben das erste "li" ausgewählt, dessen Inhalt "a" ist. Dann müssen Sie nur den Wert für Ihr Auswahlfeld festlegen.

$ ('# button1') val (selecteLIValue). // "a" oder "b"

0

undefined beantwortet sie. Ich habe nur einen Raum

$("#" + buttonnumber + " option") 

dank