Javascript 在每个()循环中选择复选框时出现问题

Javascript 在每个()循环中选择复选框时出现问题,javascript,jquery,Javascript,Jquery,我试图遍历每个文本输入字段,并找出是否选中了分配给它的复选框。但是,我在each()循环中选择复选框时遇到了问题 我的HTML: <table> <tbody> <tr> <td style="vertical-align: top;"> <label for="MainTemplate" class=""&

我试图遍历每个文本输入字段,并找出是否选中了分配给它的复选框。但是,我在each()循环中选择复选框时遇到了问题

我的HTML:

<table>
        <tbody>
                <tr>
                    <td style="vertical-align: top;">
                        <label for="MainTemplate" class="">Hlavná šablóna:</label>
                    </td>
                    <td>
                        <input name="MainTemplate" class="input mainTemplate" value="" style="width: 10em;" type="text"> <br> <table>

    <tbody><tr>         <td>            <input name="MainTemplateInheritCheckbox" class="input inheritCheckbox" value="1" checked="checked" type="checkbox">        </td>       <td style="font-size: 0.9em;">          <label for="MainTemplateInheritCheckbox">hodnoda sa zdedí z vyššej úrovne</label>       </td>   </tr>

</tbody></table>
                        <br>
                    </td>
                </tr>
                <tr>
                    <td style="vertical-align: top;">
                        <label for="Lector" class="">Školiteľ:</label>
                    </td>
                    <td>

                        <input name="Lector" class="input lector" value="" style="width: 10em;" type="text"> <br> <table>   <tbody><tr>         <td>            <input name="LectorInheritCheckbox" class="input inheritCheckbox" value="1" checked="checked" type="checkbox">      </td>       <td style="font-size: 0.9em;">          <label for="LectorInheritCheckbox">hodnoda sa zdedí z vyššej úrovne</label>

        </td>   </tr> </tbody></table>
                        <br>
                    </td>
                </tr>
</table>
我尝试了此操作,但即使选中复选框,也会返回false:

alert($(this).next().next().children("input[type=checkbox]:first").is(":checked"));
尝试
$(this).next('table')。find('input[type=checkbox]:first')是(':checked')

你也可以通过名字得到它,因为它们是相关的

var cbName = '#' + $(this).attr('name') + 'InheritCheckbox';
$(cbName).is(':checked');
这两者都有点脆弱,依赖于DOM中或元素名称之间的关系,尽管我怀疑随着时间的推移,后者可能会更稳定。

Try
$(this)。next('table')。find('input[type=checkbox]:first')是(':checked')

你也可以通过名字得到它,因为它们是相关的

var cbName = '#' + $(this).attr('name') + 'InheritCheckbox';
$(cbName).is(':checked');
这两者都有点脆弱,依赖于DOM中或元素名称之间的关系,尽管我怀疑随着时间的推移,后者可能会更稳定。

试试这个(获取包含的表行并搜索该元素中的复选框):

尝试以下操作(获取包含表的行并搜索该元素中的复选框):

试一试

试试看


对。该复选框是通过两次调用
next
到达的节点的后代,但不是直接子节点。你(=Richard)也可以用原始代码中的
find
替换
children
,不过
.next().next()
在我看来,如果HTML的结构有一点变化,那就好像自找麻烦一样。对。该复选框是通过两次调用
next
到达的节点的后代,但不是直接子节点。你(=Richard)也可以用原始代码中的
find
替换
children
,不过
.next().next()
在我看来,如果HTML的结构有一点变化,那就好像自找麻烦一样。
$("input[type=text]").each(function() {
    alert($(this).closest("tr").find("input[type=checkbox]:first").is(":checked"));
}); 
$("input[type=checkbox]:first",$(this).parent()).is(":checked")
$("input[type=text]").each(function()
{
    alert($(this).closest("td").find("input[type=checkbox]").attr("checked"));
});