如何使用jquery从checkboxlist控件获取复选框的选定索引?

如何使用jquery从checkboxlist控件获取复选框的选定索引?,jquery,checkboxlist,Jquery,Checkboxlist,您好, 如何使用jquery从checkboxlist控件中获取selectedindex of复选框 更新: 此代码为我选择的索引等于0,请注意 <asp:CheckBoxList ID="chkListGroups" runat="server" style="position:absolute; top: 1115px; left: 745px; bottom: 371px;" DataSourceI

您好, 如何使用jquery从checkboxlist控件中获取selectedindex of复选框

更新:

此代码为我选择的索引等于0,请注意

<asp:CheckBoxList ID="chkListGroups" runat="server" 
                    style="position:absolute; top: 1115px; left: 745px; bottom: 371px;" 
                    DataSourceID="SqlDSGroups" DataValueField="Groups" 
                    onclick="test()">
                </asp:CheckBoxList>


....................
java script function
.....................
  function test(){
  $('#<%=chkListGroups.ClientID %>').click(function() {
                var selectedIndex = $('#<%=chkListGroups.ClientID %>').index($(this));


                alert(selectedIndex);


            });
        }

如果需要上一个选中复选框的索引,也可以这样做

var query = (from o in CheckBoxList1.Items.OfType<ListItem>()  
                     where o.Selected  
                     select o).Take(1).Reverse().ToList();   

对集合使用选择器,然后对感兴趣的元素(这里是选中的元素)使用索引

var checkboxes = $('input:checkbox');
var selectedIndex = checkboxes.index(checkboxes.find(':checked'));
要获取已单击复选框的索引,请使用:

$('input:checkbox').click( function() {
    var selectedIndex = $('input:checkbox').index( $(this) );
    ... now do something with it...
});
编辑:基于您的代码示例:

var checkboxes = $('#<%=chkListGroups.ClientID %>').find('input:checkbox');
checkboxes.click(function() { 
    var selectedIndex = checkboxes.index($(this)); 
    alert(selectedIndex); 

});  

我还没有测试过这个,但它类似于这个代码。我希望它能帮助你

你是在说ASP.Net吗?@SLaks:如果是客户端,那就没什么关系了。@R0MANARMY:这取决于复选框列表是什么。我正在使用ASP.Net复选框列表,但我想使用jqueryOMFG在客户端获取所选索引!所有这些代码都是为了得到一个选定的索引?!你应该考虑其他的编程语言,伙计……这是怎么让你选择索引的?这是一个非常奇怪的方法来获取包含第一个选定元素的列表。我错了,这只会给你选定项目的最后一个索引……哦,你不觉得这是一个很大的开销吗?@VoodooChild:所以问题是关于获取选定项目的客户端,因为你的代码是服务器端的C代码。此外,您的代码只返回元素,而不是问题所要求的列表中元素的索引。最后,如果问题是关于获取列表中的第一个选定元素,使用CheckBoxList1.Items.OfType.FirstOrDefault s=>s.Selected可以更容易地获取它。我想要的确切内容是所单击对象的索引checkbox@Eyla-我添加了一个单击处理程序的示例,该处理程序将为您提供单击复选框的索引。@tvanfosson我使用您的代码获取所选索引,但我始终获取0索引无论我选择了哪个复选框。有什么建议吗???@Eyla-第一个还是第二个样本?第二个将为您提供正在单击的一个。第一个会给你第一个选中的。@tvanfosson第二个总是给我选择的索引=0。请参阅主要问题中的更新代码。你知道jQuery每个函数都已经为你跟踪了索引,并将其作为参数传递到回调中,所以你不需要手动保持计数,对吧?事实上,我不知道。谢谢你的评论。
get value: $("input:checked").val();
get id: $("input:checked").attr('id');

//or this:
var counter=0;
$('input:checkbox').each(function(){
   if($(this).is(":checked"))
   {
     var Index = counter;
   }
   else{
     counter++;
   }

   //So Index is what you want.
});