如何检查在jquery中是否选中了前一个复选框

如何检查在jquery中是否选中了前一个复选框,jquery,input,checkbox,each,ischecked,Jquery,Input,Checkbox,Each,Ischecked,我有一个非常大的表,它包含可以用左边的勾选框选择的单行,或者它们可以包含包含它们自己的单行的组,其中可以单独选择该组来选择该组中的所有单行。 现在我有一个查询,每个函数看起来像这样 $('tbody :checked').each(function() { //row counter here if ($(this).prev("input:checkbox").is(':checked')){ 所以这个检查是为了查看检查了哪些行,然后我得到了这个“If”语句,它对我不起作用。

我有一个非常大的表,它包含可以用左边的勾选框选择的单行,或者它们可以包含包含它们自己的单行的组,其中可以单独选择该组来选择该组中的所有单行。 现在我有一个查询,每个函数看起来像这样

$('tbody :checked').each(function() {
    //row counter here
    if ($(this).prev("input:checkbox").is(':checked')){
所以这个检查是为了查看检查了哪些行,然后我得到了这个“If”语句,它对我不起作用。基本上,在每一行中我都有输入值,但是我不希望此代码在未选中复选框的任何输入上运行。因此,在每个函数中,我希望它检查是否选中了上一个复选框,如果是,则继续代码,如果不是,则跳过它。 但是,我可以对单独的行轻松地执行此操作,但是我的组很复杂,因为它们可以包含许多表行,因此我无法仅请求最近的表行并查看是否选中了复选框。

那么,我如何简单地检查我所在的输入框前的第一个复选框是否已选中。

谢谢

编辑…
这是一行…

<tr class="LotTableRow">
    <td class="ColLot" colspan="2">
        <label style="font-size: 90%; font-weight: normal; height: 10px">
            <input checked="checked" id="3" name="BidderLot" onclick="participateOnClick(this);" type="checkbox" value="true"><input name="BidderLot" type="hidden" value="false">                                          New Lot
        </label>
    </td>
    <td class="ColQuantityRow">
        90
    </td>
    <td class="ColStartBid">
        <input class="text-box single-line BidderLotText" name="[0].BidderLots[0].StartBid" type="text" value="" alt="N/A" autocomplete="off">
    </td>
</tr>

新地段
90
这可以是一个团体,但它可以永远持续下去……

<tr class="LotTableRow" style="display:table-row">
    <td class="ColGroup" colspan="2">
        <input name="[2].AuctionId" type="hidden" value="c7df8b82-afa8-4709-ae08-f986523e38b9">
            <input name="[2].LotGroupId" type="hidden" value="3cca6186-db7e-411b-975c-f97e7c10119c">
        <label>
            <input checked="checked" id="3cca6186-db7e-411b-975c-f97e7c10119c" name="BidderGroup" onclick="participateOnClick(this)" type="checkbox" value="true"><input name="BidderGroup" type="hidden" value="false">                                            dfgdfgdfg
        </label>
    </td>
    <td class="EnglishBidderLotCol">
    </td>
</tr>
<tr class="LotTableRow">
    <td class="LotTableSpace">
    </td>
    <td class="ColLot">
        New Lot
    </td>
    <td class="ColQuantityRow">
        20
    </td>
    <td class="ColStartBid">
        <input class="text-box single-line BidderLotText watermark" name="[2].BidderLots[0].StartBid" type="text" value="" alt="N/A">
    </td>
</tr>

dfgdfgdfg
新地段
20

假设每个tr中有一个复选框,这应该可以:

if ($(this).parents('tr:eq(0)').prev().find('input[type="checkbox"]:checked').length){

您以前的选择器将不匹配,因为TD元素中没有previous复选框。但是因为你没有发布任何HTML,这只是我的猜测。

嗯,换一种方式怎么样

  • 获取每个选中的项目:

    jQuery(“tbody输入:复选框”)

  • 处理每个项目

    jQuery(“tbody input:checkbox”).find(“运行代码所需的内容”).each(function(){})


  • 我希望这有帮助

    请发布一些相关的HTML以便我们可以查看布局。您可以添加一些HTML示例吗?另外,我知道我的if语句是错误的,这只是我最后尝试的内容。您可以提供一些HTML代码吗?
    prev(“输入:复选框”)
    此选择器错误。它应该是
    prev(“input[type=checkbox]”)
    ,您可以使用它
    prev(“input[type=checkbox]:checked”)
    并删除is()。好的,我这样做了,但当我进入我的组时,我仍然遇到同样的问题。很难说你只想要组中的文本框only@Ben,发布一段包含组的HTML代码。类似这样的代码适用于我的个人行,但当我进入组时,它不起作用,因为它们都在自己的“tr”中,没有复选框