我有一些jquery代码,我试图在用户点击div时选中一个复选框。我的小提琴如下:
我想出的是这个,但它没有选择范围内的复选框:
$('span[name="' + current + '"]').closest('input:checkbox[id="CB_Selected"]').prop('checked', true);
完整代码位于链接
中我的问题是如何根据其唯一名称获取范围内的选择框并选择它?
n.b我已经在jquery中注释掉了隐藏功能,以便直观地看到是否选中了复选框
修改
我的ID是相同的,因为我在ASP.NET内部工作并使用转发器来创建小提琴中显示的HTML。在Repeater内部我无法设置项目的ID,因为Repeater控件不允许我使用Eval(datasource)
答案 0 :(得分:1)
ID是唯一的。所有你需要的是:
$("#CB_Selected").prop('checked', true);
实际上,你甚至不需要jQuery:
document.getElementByID('CB_Selected').checked = true;
正如其他人所指出的,如果有多个复选框,最好使用类而不是ID。另外,input
不能生孩子,因此closest
功能不起作用;您的意思是find
(针对儿童)还是siblings
?
答案 1 :(得分:0)
不是给几个复选框提供相同的ID - 这会使你的html无效 - 而是在复选框上使用一个类。变化:
<input id="CB_Selected" type="checkbox" name="ctl00$ContentPlaceHolder_Content_Wraper$ctl01$Repeater_Selected$ctl00$CB_Selected" />
要:
<input class="CB_Selected" type="checkbox" name="ctl00$ContentPlaceHolder_Content_Wraper$ctl01$Repeater_Selected$ctl00$CB_Selected" />
然后你可以使用代码:
$('#s_' + this.id).find(':checkbox.CB_Selected').prop('checked', true);