2017-01-22 6 views
1

Ich erstelle ein zweisprachiges Formular, in dem ich ein select Tag mit mehreren option Tags innerhalb haben. Ich möchte diese Option mit Klasse "blah" und mit Wert "1" bekommen und dann als "ausgewählte" Option auswählen.Wie verwendet man mehrere [Attribut = Wert] Selektor für dasselbe Element?

Ich wählte es basierend auf class und dann basierend auf value, aber das Ergebnis ist null. Hier ist mein Code:

$('select').each(function (e, item) { 

      var selectedEnglish = $(item).children("option[class='English']") 
      var englishItem = selectedEnglish.find("option:selected").val(); 

      var farsiList = $(item).children("option[class='Farsi']") 
      var farsiItem = farsiList.find("[value='" + englishItem + "']"); 

      farsiItem.attr('selected', 'selected'); 
    }); 

Was ist mehr wie kann ich mit einer Kette von Aussagen bekommen?

diese Option aktiviert ist in jquery bevölkert:

$("#TitleId").html(""); 
      $("#TitleId") 
       .html("<option value='' class='Farsi'>عنوان</option><option value='' class='English'>Title</option>"); 
      $.each(titles, 
       function (key, value) { 
        $("#TitleId") 
         .html($("#TitleId").html() + 
          "<option class='Farsi' value='" + 
          value.Id + 
          "'>" + 
          value.Name + 
          "</option>"+ 
          "<option class='English' value='" + 
          value.Id + 
          "'>" + 
          value.EnName + 
          "</option>"); 
       }); 
+0

Können Sie einige HTML für diesen Code bereitstellen? – br3t

+0

nur um zu verdeutlichen, hast du ein 'select' für englisch und ein' select' für farsi? – changepicture

+0

@changepicture Ich habe mehrere Select-Element. In jedem "select" gibt es 2 Optionen mit demselben Wert für jedes Item, aber mit verschiedenen Klassen und Texten. Ich wechsle zwischen den Sprachen, indem ich basierend auf ihrer Klasse zeige/verstecke. – Afsaneh

Antwort

2

Wenn Sie die Option mit Klasse "blah" und den Wert "1" erhalten möchten, ist dies Ihre Abfrage:

$('select option[class=blah][value="1"]') 

Wenn Sie Möchten Sie diese Option auswählen, die Sie einfach tun können:

$('select option[class=blah][value="1"]').attr('selected', 'selected'); 
+0

zum ersten Mal ändert es das ausgewählte Element. aber nicht zum zweiten Mal. – Afsaneh

+0

Wenn Sie die Klasse oder den Wert nicht ändern, sollte sie weiterhin ordnungsgemäß funktionieren. Wenn Sie die Klasse oder den Wert ändern, müssen Sie die Abfrage entsprechend aktualisieren. – poushy

Verwandte Themen