2016-07-21 10 views
-1

Ich habe die folgende HTML-Struktur für jedes <select> Objekt in meiner Seite:Holen Sie sich das nächste Wegstück mit Klasse

<div class="clsPropertyDiv clsPropertyId_16 "> 
     <span class="inputTitle">You can select multiple items</span><br> 
     <select id="select_16" multiple="multiple" style="display: none;"> 
      <option class="" value="2699" id="opt_2699">Rusian </option> 
      <option class="clsOptionSelected" value="2700" id="opt_2700">English </option> // take this text 
      <option class="" value="2702" id="opt_2702">Hebrew</option> 
     </select> 

     <div class="ms-parent multipleSelection" multiple="multiple"> 
      <button type="button" class="ms-choice"> 
       <span class="spnMulti"></span> // insert here. 
       <div class=""></div> 
      </button>   
     </div> 
    </div> 

Ich brauche den ausgewählten Text zu bekommen, und legen Sie es an: <span class="spnMulti"></span>

Dies ist, was Ich habe versucht zu tun:

$('.selectOptions option').each(function() { 
      if ($(this).hasClass('clsOptionSelected') { 
       var selectedText = $(this).text(); 
       $(this).next('.spnMulti').text("selectedText "); 

      } 
     }); 
+1

Entfernen Sie die Anführungszeichen um 'selectedText' -' $ (this) .closes ('. SpnMulti'). Text (selectedText); ' – Polyov

+0

[Wenn Sie die Dokumente zu' engsten' gelesen hätten, würden Sie verstehen, dass dies nicht der Fall ist tu was du versuchst zu tun (http://api.jquery.com/closes/). – zzzzBov

Antwort

1

Die .spnMulti sind nicht childen von selectOptions. Sie müssen das Eltern-div aufrufen und nach spnMulti suchen.

Beispiel:

$(this).closest('.clsPropertyDiv').find('.spnMulti').text(selectedText); 

und fügen Klasse "wählen Sie Optionen", in der Wahl auszuwählen, die Sie verwenden: "$ ('wählen Sie Optionen Option')" und nicht eine .selectOptions Klasse in ausgewählten haben.

+0

Yup das ist genau richtig - schlag mich dazu! ;) – mhodges

+0

Vielen Dank! – Eyal

Verwandte Themen