我正在尝试迭代每个文本输入字段,并查明是否选中了分配给它的复选框。我在每个()循环中选择复选框时遇到问题。
我的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>
我的jquery代码:
$("input[type=text]").each(function() {
// here I need to find out whether the checkbox is checked or not
});
我试过这个,但即使对于选中的复选框也会返回false:
alert($(this).next().next().children("input[type=checkbox]:first").is(":checked"));
答案 0 :(得分:3)
尝试$(this).next('table').find('input[type=checkbox]:first')is(':checked');
你也可以通过名字得到它,因为它们是相关的。
var cbName = '#' + $(this).attr('name') + 'InheritCheckbox';
$(cbName).is(':checked');
这两个都有点脆弱,并且依赖于DOM或元素名称之间的关系,但我怀疑后者可能会随着时间推移更加稳定。
答案 1 :(得分:2)
试试这个(获取包含的表行并搜索该元素中的复选框):
$("input[type=text]").each(function() {
alert($(this).closest("tr").find("input[type=checkbox]:first").is(":checked"));
});
答案 2 :(得分:1)
答案 3 :(得分:1)
$("input[type=text]").each(function()
{
alert($(this).closest("td").find("input[type=checkbox]").attr("checked"));
});