检查元素是否存在于行中,但仅限于当前行

时间:2015-09-26 07:09:15

标签: jquery

我有一个看起来像这样的表:

<table>
 <tr><td><input class="serv1" type="checkbox" name="ser1[]" id="ser1[]" value="Yes"></td><td><input class="serv2" type="checkbox" name="ser2[]" id="ser2[]" value="Yes" ></td><td><input class="serv3" type="checkbox" name="ser3[]" id="ser3[]" value="Yes" ></td></tr>
 <tr><td><input class="serv1" type="checkbox" name="ser1[]" id="ser1[]" value="Yes"></td><td></td><td><input class="serv3" type="checkbox" name="ser3[]" id="ser3[]" value="Yes"></td></tr>
</table>

使用jquery,当点击即ser3 [](第一行)时,我检查是否检查了ser2 [](也在第一行),如果不是,我不允许检查。

在第2行中我没有ser2 []所以我必须检查是否存在ser2 [],检查是否检查了ser1 [](总会有ser1 []和ser3 [])

我的代码如下:(我只插入了代码的一部分,我遇到了麻烦)

$('.serv3').change(function() {
if($(this).parents('tr').find('td.serv2')){
        alert('exist')}
    else{
        alert('Not Exist')
    }

});

我的问题是,即使在第2行,当我检查ser3 []时,它找到了一个ser2 [],我只能假设在行1中找到了ser2 []。 所以我的问题是我如何才能将.find()限制为当前行。

谢谢!

1 个答案:

答案 0 :(得分:0)

你可以做到这一点

$('.serv3').on('change', function () {
   if($(this).closest('td').siblings('td').find('.serv2').length){
      alert('exist');
   }
   else{
      alert('not exist');
   }

});