Frage

Ich habe eine Reihe von Werten, die auf der Seite Laden vorhanden sind: zB [1193,1184,2372].

Ich habe einen dropdownchecklist, die einen einzelnen Wert wie so nehmen $ ( "DDL"). Dropdownchecklist () val (1193);..

Wenn ich die dropdownchecklist rebind wählt diese den Wert korrekt. Allerdings habe ich versucht, meine Array mit mehreren Werten zu den val () Methode übergeben und nicht die Werte auswählen. Ich erwartete Art davon. Ich bin nicht sicher, wie man am besten geht über Vorwählen.

Ich habe versucht, meinen Array iteriert ein Filterattribut zu bauen, wie die folgenden anwenden: . $ ( "Ddl [value * = '1184'] [Wert * = '9067'] [Wert * = '14841']") attr ( 'ausgewählt', 'ausgewählt');

, aber das funktioniert nicht. Ich will nicht alle Optionen in der DDL iterieren mitzuführen und sie zu wählen, wenn sie übereinstimmen, da es Hunderte von Möglichkeiten gibt, und dies wird nicht klug, eine gute Leistung, vor allem, wenn es nur zwei Optionen preseleted werden.

Irgendwelche Ideen?

War es hilfreich?

Lösung

eine Zeichenfolge der ausgewählten Erstellen Sie den jQuery-Selektor-String zu erstellen und sie in die .find put () Funktion:

var str = '';
var arrLength = selectedArray.length;
$.each(selectedArray, function(i){
   str += 'option[value*='+selectedArray[i]+']';
   if((i+1) != arrLength){
     str += ', ';
   }
});

$('.ddl').find("option[value*='1184'], option[value*='9067'], option[value*='14841']")
     .attr('selected','selected'); 

Beachten Sie auch, wenn ein Drop-Down mit einem Wert zu vergleichen, Sie suchen das option Element in der Auswahl, nicht das Auswahlelement selbst.

Andere Tipps

Ich habe es mit dieser Arbeit, aber die oben genannte Antwort sieht aus wie eine gute Lösung:

$.each(arr, function(i,s)
{
     $(ddl_id + ' [value*=\'' + s + '\']').attr('selected','selected');
});    

Nicht sicher, das ist wahrscheinlich schneller sein, aber Minen ein wenig saubere.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top