我试图在之前的TD中通过jquery检查/取消选择一个选择框.我已经尝试了几个小时的几个组合与prev(),parent(),nearest(),但仍然没有结果...这是示例代码:
<table>
<tr>
<td><input type="checkbox" class="resultcheck"></td>
<td><label class="resultchecklabel">Text 1</label></td>
</tr>
<tr>
<td><input type="checkbox" class="resultcheck"></td>
<td><label class="resultchecklabel">Text 2</label></td>
</tr>
</table>
<script>
$('.resultchecklabel').live('click', function() {
if ($(this).prev('td input:checked').val() != null)
{
$(this).prev('td').prev("input").removeAttr("checked");
}
else
{
$(this).prev('td').prev("input").attr("checked","checked");
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
谁能帮我解决这个问题?非常感谢!
@Adam和@peterendidit击中头部 - 这里不需要javascript/jQuery.
你的代码不起作用的原因可能是因为this在你的上下文中是label元素,而td彼此的兄弟是,而不是label.我认为如果您有更复杂的要求 - 例如额外的造型等,这将完成您想要的并且就足够了.
var cb = $(this).closest('td') // containing TD
.prev('td') // previous TD
.find('input'); // input within TD
if (cb.find(':checked').length == 0) { // not checked
cb.attr('checked','checked');
}
else {
cb.removeAttr('checked');
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6896 次 |
| 最近记录: |