Jquery在span中获得Checkbox

时间:2014-07-23 15:42:58

标签: javascript jquery html asp.net

我有一些jquery代码,我试图在用户点击div时选中一个复选框。我的小提琴如下:

http://jsfiddle.net/5PpsJ/

我想出的是这个,但它没有选择范围内的复选框:

$('span[name="' + current + '"]').closest('input:checkbox[id="CB_Selected"]').prop('checked', true);

完整代码位于链接

我的问题是如何根据其唯一名称获取范围内的选择框并选择它?

n.b我已经在jquery中注释掉了隐藏功能,以便直观地看到是否选中了复选框

修改 我的ID是相同的,因为我在ASP.NET内部工作并使用转发器来创建小提琴中显示的HTML。在Repeater内部我无法设置项目的ID,因为Repeater控件不允许我使用Eval(datasource)

设置ID

2 个答案:

答案 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);