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