2017-07-23 5 views
0

Hallo all dies ist eine einfache und dumme, wie ich nicht schlau genug, um es herauszufinden. So habe ich die folgende geordnete Liste innerhalb eines asp:Repeater -Mit jQuery, um Kontrollkästchen Eigenschaft in einem Repeater setzen

<ul id="KeyAreaUl"> 
    <asp:Repeater ID="Rptr" runat="server"> 
     <ItemTemplate> 
     <li runat="server" id="ActiveLiElement" class='<%# IsActive(DataBinder.Eval(Container.DataItem, "Key").ToString())%>'> 
      <asp:CheckBox Text='<%# DataBinder.Eval(Container.DataItem, "Key")%>' runat="server" ID="KeyCheckbox" Checked="false" /> 
      <a href="#"><%# DataBinder.Eval(Container.DataItem, "Key") %></a> 
     </li> 
     </ItemTemplate> 
    </asp:Repeater> 
</ul> 

Ich Hinzufügen/Entfernen von Klasse active zum li Element aus dem Code hinter die auf den gegenwärtigen querystring. Das Ziel besteht darin, ein jQuery-Skript zu schreiben, das die Checkbox-Eigenschaft auf Checked setzt, wenn die entsprechende li Klasse active hat.

Mein Versuch (ein erfolgloser) war -

<script type="text/javascript"> 
    $(document).ready(function() { 
     if ($('#KeyAreaUl li').hasClass('active')) { 
      $(this).find('input').prop('checked', true);    
     }; 
    }); 
</script> 

Das Problem, das ich mit Blick auf bin ist, wird das Skript die Kontrollkästchen alle als aufgegebenes setzt, wenn ein li Element active Klasse. Das Ziel besteht darin, das Kontrollkästchen nur dann zu aktivieren, wenn das übergeordnete Element li die Klasse active hat. Was mache ich falsch?

Antwort

1

Dies könnte in Ihrem Fall:

$('#KeyAreaUl li').each(function(){ 
    if ($(this).hasClass('active')) { 
     $(this).find('input').prop('checked', true);    
    }; 
}) 
+0

Might? Es funktioniert tatsächlich ... nur getestet. Vielen Dank – envyM6

+1

@ envyM6 nie sicher was passieren könnte :)) danke für die Rückmeldung! – PRMoureu

Verwandte Themen