0

我有以下html代码:

<tr>
    <td class="right">
        <label class="input-control tiny-checkbox" onclick="">
            <input type="checkbox" value="0"/>
            <span class="helper"></span>
        </label>
    </td>
    ...

我有以下 jQuery 代码:

$("table tbody tr td").click(function () {
    var col = $(this).parent().children().index($(this));
    var row = $(this).parent().parent().children().index($(this).parent());

    if (col == 0) {
        // col checkbox -> highlight the line (on/off)
        var checked = $(this).children(':checkbox').is(':checked');

即使选中了复选框,选中的 var 也永远不会为真。我不知道为什么。

任何的想法?

4

2 回答 2

4

您必须使用findinside of,children因为 children 会检查直接子元素,而不是孙子元素。

  var checked = $(this).find(':checkbox').is(':checked'); 
于 2013-01-26T09:35:08.463 回答
1

使用该find()方法而不是children()因为复选框不是td

$("table tbody tr td").click(function () {
    var col = $(this).parent().children().index($(this));
    var row = $(this).parent().parent().children().index($(this).parent());

    if (col == 0) {
        // col checkbox -> highlight the line (on/off)
        var checked = $(this).find('input:checkbox').is(':checked');
    }
});

演示:http: //jsfiddle.net/MShgq/

于 2013-01-26T09:41:11.260 回答