0

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

$('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>

这可以是一个团体,但它可以永远持续下去......

<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>
4

2 回答 2

0

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

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

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

于 2013-01-14T15:15:36.757 回答
0

嗯,换个方式怎么样?

  1. 获取每个选中的项目:

    jQuery("tbody 输入:复选框")

  2. 处理每个项目

    jQuery("tbody input:checkbox").find("无论你在寻找什么来运行你的代码").each(function() {});

我希望这有帮助

于 2013-01-14T15:23:03.050 回答