我有一个复选框数组和一个checkall / uncheck all函数。当我取消选中所有内容时,我想确保第一个仍然检查但是它不能按照以下方式工作:
$("input[name='temps[]']").removeAttr("checked"); // works
$("input[name='temps[0]']").prop("checked", true); // doesn't work
是否有一种解决方法,以便我不必在循环生成复选框内麻烦它,或者我无法在没有它的情况下执行此操作给第一个复选框一个id?
$("#firstBox").prop("checked", true)
答案 0 :(得分:2)
您可以使用.eq(index )
或:eq(index )
获取指定索引处的元素,然后可以执行所需的操作
$("input[name='temps[]']").eq(index).prop("checked", true);
或,
$("input[name='temps[]']:eq(" + index + ")").prop("checked", true);
您还可以使用:first
selector获取第一个匹配的DOM元素
$("input[name='temps[]:first']").prop("checked", true);
答案 1 :(得分:1)
查看您的HTML源代码。元素名称为temps[]
,而不是temps[0]
。这就是为什么第二个选择器不起作用的原因。
要先选择,请使用.eq(0)
:
$("input[name='temps[]']")
.removeAttr("checked")
.eq(0)
.addClass('checked')
.prop('checked', true)
;
答案 2 :(得分:1)
您可以使用eq()
函数从jQuery列表中按编号提取项目。这将创建一个仅包含该项的派生列表,然后您可以照常进行:
$("input[name='temps[]']").eq(0).prop("checked", true);
答案 3 :(得分:1)
$("input[name='temps[]']")[0].prop("checked", true);
或者
$("input[name='temps[]:first']").prop("checked", true);