2

我需要查看是否选中了字段集中某个范围内的任何复选框

<fieldset id="issues">
    <input name="A" id="issue_0" type="checkbox" value="A" /> <--- this one
    <input name="B" id="issue_1" type="checkbox" value="B" />
    <input name="C" id="issue_2" type="checkbox" value="C" />
    <input name="D" id="issue_3" type="checkbox" value="D" />
    <input name="E" id="issue_4" type="checkbox" value="E" />
</fieldset>

字段集是#issues,这可以很好地查看是否检查了其中任何一个

if( $('#issues input[type="checkbox"]').is(':checked') ){
  console.log("One of them is checked");
}

但我想查看是否选中了按索引的特定复选框,即是否选中了第一个复选框。我试过这个...

if( $('#issues input[type="checkbox"][0]').is(':checked') ){
  console.log("Item one is checked");
}

但它不起作用

如何通过字段集中的索引定位特定复选框?

4

3 回答 3

6
if( $('#issues input[type="checkbox"]').first().is(':checked') ){
    console.log("Item one is checked");
}

用于.first()抓住包装中的第一个。

另外我建议使用.prop()它,因为它在涉及跨浏览器问题时更容易处理!

if( $('#issues input[type="checkbox"]').first().prop('checked') === true ){
    console.log("Item one is checked");
}​

如果您需要获取特定索引,您可以执行以下操作:

var index = 2;
if( $('#issues input[type="checkbox"]').eq(index).prop('checked') === true ){
    console.log("Item one is checked");
}​
于 2012-08-14T23:23:54.257 回答
3

您可以使用以下eq()方法:

在匹配集中选择索引 n 处的元素。

 if( $('#issues input[type="checkbox"]').eq(0).is(':checked') ){
    console.log("Item one is checked");
 }

或使用:eq()选择器:

$('#issues input[type="checkbox"]:eq(0)') // selects the first input
$('#issues input[type="checkbox"]:eq(1)') // selects the second input
于 2012-08-14T23:25:54.597 回答
1

这将允许您选择第 n 个孩子:

http://api.jquery.com/nth-child-selector/

if( $('#issues input[type="checkbox"]:nth-child(1)').is(':checked') ){
    console.log("child one is checked");
 }
于 2012-08-14T23:27:45.537 回答