Jquery获得选中的复选框

嗨,我想在页面中获取所选复选框的列表,实际上我真正需要的是获取复选框旁边元素的文本,这是一个html元素

  • 代码在下面而且它不起作用

    这是我目前的jQuery:

     $(document).ready(function () { $('#target').click(function () { alert("in"); var checkValues = []; $('input[name=checkboxlist]:checked').each(function() { alert($(this)val()); checkValues.push($(this)val()); }); }); }); 

    这是HTML:

     
    • Structured Products<input type="checkbox" name="checkboxlist"
    • Global FID
      • PowerPoint Presentations<input type="checkbox" name="checkboxlist"
      • Global Deck
        • Test1<input type="checkbox" name="checkboxlist"
        • Test2<input type="checkbox" name="checkboxlist"
        • Test3<input type="checkbox" name="checkboxlist"
        <input type="checkbox" name="checkboxlist"
      • Credit Default Swaps Position
        • Test4<input type="checkbox" name="checkboxlist"
        • Test5<input type="checkbox" name="checkboxlist"
        <input type="checkbox" name="checkboxlist"
      • Thought Leadership<input type="checkbox" name="checkboxlist"
      • Fixed Income Perspectives<input type="checkbox" name="checkboxlist"
      • Public Policy Information and Regulatory<input type="checkbox" name="checkboxlist"
      • Regional FID<input type="checkbox" name="checkboxlist"
      <input type="checkbox" name="checkboxlist"
    • Global Rates<input type="checkbox" name="checkboxlist"
    • Global Credit Products<input type="checkbox" name="checkboxlist"
    • FX<input type="checkbox" name="checkboxlist"
    • Emerging Markets<input type="checkbox" name="checkboxlist"
    • Commodities<input type="checkbox" name="checkboxlist"
    • testcat<input type="checkbox" name="checkboxlist"
    • testcat<input type="checkbox" name="checkboxlist"

    您的输入需要在末尾用/>关闭以使您的HTML有效,如下所示:

      

    然后你可以像这样做jQuery来获取文本数组:

     $(function () { $('#target').click(function () { var checkValues = $('input[name=checkboxlist]:checked').map(function() { return $(this).parent().text(); }).get(); //do something with your checkValues array }); });​ 

    你可以在这里看到这个

    由于你需要的只是父的.text()和你的布局,你可以使用.map()来快速获取基于选择器的属性数组。

     $("input[type=checkbox]:checked").parent().text() 

    首先,您必须关闭复选框标记

      

    应该

      

    我想,从您的HTML中,您可以获得所需文本的lis文本

     $(function(){ $('#target').click(function(){ var selected = new Array(); $("input:checkbox[name=checkboxlist]:checked").each(function(){ var val = $(this).closest("li").text(); selected.push(val); }); }); }); 

    您没有正确关闭输入标签。 另外, $(this)val()应该是$(this).val()

    如果要获取包含input元素的li元素的文本,可以按如下方式编写:

     $(this).parents("li:first").text();