使用jQuery在转发器

时间:2017-07-23 16:21:20

标签: jquery asp.net

嗨,这一切都是一个简单而愚蠢的事情,因为我不够聪明,无法弄明白。所以我在asp:Repeater -

中有以下有序列表
<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>

我根据当前active从代码后面的li元素中添加/删除了类querystring。目标是编写一个jQuery脚本,如果相应的Checkbox具有类Checked,则将li属性设置为active

我的尝试(不成功)是 -

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

我面临的问题是,如果li元素具有active类,则脚本会将所有复选框设置为已选中。目标是仅在其父li具有类active时设置复选框。我做错了什么?

1 个答案:

答案 0 :(得分:1)

这可能适用于您的情况:

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