我正在尝试选择某些复选框(想象一下选中所有复选框以检查其他框)。我成功地“检查”了他们但不想全部完成。请考虑以下屏幕截图:
这是jQuery。它在我需要时选择每个复选框,只选择该组中的复选框。由于这个ASP.NET是动态的,我几乎无法控制HTML,所以我需要在对象出现时找到并选择我需要的东西。换句话说,我不能添加类名,id等。
$(".anAlarmGroup input:first-child").click(function () {
if ($(this).is(":checked")) {
//Select all alarms following this group heading until reaching the next group heading, while also grabbing each alarm ID
$('.anAlarm').find('input[type="checkbox"]').attr('checked', 'checked');
}
else {
$('.anAlarm').find('input[type="checkbox"]').removeAttr('checked');
}
});
答案 0 :(得分:1)
$('.anAlarm').find('input:checkbox[name="whatever"]').prop('checked', true);
或者,在您的情况下:
$(".anAlarmGroup input:first-child").click(function () {
$('.anAlarm')
.find('input:checkbox[name="'+$(this).attr('name')+'"]')
.prop('checked', ($(this).is(':checked')));
});
这应该只检查(或取消选中)具有相同名称的复选框。
答案 1 :(得分:0)
如果没有看到您的代码,很难找到一个万无一失的解决方案,但是使用JQuery,您可以使用CSS样式选择器来选择DOM元素。例如,如果该字段集具有唯一的类或ID,则可以使用此优势,并选择仅作为该特定字段集的子项的输入。或者,如果字段集没有唯一ID,您可以在表单本身的第一个子选择器上选择它。
答案 2 :(得分:0)
在您的点击处理函数中,您可以使用$(this).siblings('input[type="checkbox"]').attr('checked', 'checked');
或$(this).parent().find('input[type="checkbox"]').attr('checked', 'checked');
,具体取决于它们的分组方式。这只会在DOM中寻找类似或更深层次的元素。
答案 3 :(得分:0)
如果要动态生成页面,可以像这样添加类。我创建了这个方法,因为我经常添加多个css类,并希望简化它。所以你只需要调用AddCssClass(someControl,“anAlarmGroup”)
public static void AddCssClass(WebControl control,string cssClass)
{
if (!control.CssClass.Contains(cssClass))
{
control.CssClass += (control.CssClass == String.Empty ? "" : " ") + cssClass;
}
}
请注意,如果css类是另一个类的子字符串,如果已经存在“bolditalic”,则添加“bold”将无法添加css类。