jQuery使用.find()方法<table> </table>获取不同类的内部

时间:2014-08-23 19:47:27

标签: javascript jquery find

我正在尝试使用jQuery返回在我的数据表中检查的所有行。如果span class =“checked”(第1行和第3行)并且未选中span class =“”(第2行),则检查行。是否有一种使用jQuery .find()方法返回所有行的快捷方式。而不是迭代所有行并比较span类属性?

我知道我可以使用find()来获取所有行。但有没有办法在jQuery find方法中定义内部元素?

<table id="myTable">
<tr>
    <td>
        <div class="checker">
            <span class="checked">
                <input type="checkbox" value="1" class="checkboxes">
            </span>
        </div>
    </td>
    <td> blah
    </td>
</tr>
<tr>
    <td>
        <div class="checker">
            <span class="">
                <input type="checkbox" value="1" class="checkboxes">
            </span>
        </div>
    </td>
    <td> blah
    </td>
</tr>
<tr>
    <td>
        <div class="checker">
            <span class="checked">
                <input type="checkbox" value="1" class="checkboxes">
            </span>
        </div>
    </td>
    <td> blah
    </td>
</tr>
</table>

3 个答案:

答案 0 :(得分:1)

您可以使用:has选择器或has方法:

$('#myTable').find('tr:has(span.checked)');

或者:

$('#myTable tr').has('span.checked');

答案 1 :(得分:0)

您应该使用&#34; closest&#34;:

$('#myTable .checked').closest('tr')

如果选中复选框,则可以直接进行测试

$('#myTable input[type="checkbox"]:checked').closest('tr')

答案 2 :(得分:0)

这是我使用.closest().find()

的解决方案
$(document).ready(function(){
    $(".checkboxes").click(function(){
         $(this).closest('tr').find('td').toggleClass('blue');
    });
});

JSFIDDLE DEMO