嗨,这一切都是一个简单而愚蠢的事情,因为我不够聪明,无法弄明白。所以我在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
时设置复选框。我做错了什么?
答案 0 :(得分:1)
这可能适用于您的情况:
$('#KeyAreaUl li').each(function(){
if ($(this).hasClass('active')) {
$(this).find('input').prop('checked', true);
};
})