Javascript 复选框的第二次出现
如何获取第二次出现的复选框? 以下是我尝试过的:Javascript 复选框的第二次出现,javascript,jquery,Javascript,Jquery,如何获取第二次出现的复选框? 以下是我尝试过的: <div id="form"> <label for="first">First</label> <input type="checkbox" name="first" value="1" > <br /> <label for="second">Second</label> <input type="checkbox
<div id="form">
<label for="first">First</label>
<input type="checkbox" name="first" value="1" >
<br />
<label for="second">Second</label>
<input type="checkbox" name="second" value="2" >
<br />
</div>
$('#form').find('input[type=checkbox]').eq(1)
弗斯特
第二
$('#form').find('input[type=checkbox')).eq(1)
但是它对我不起作用。我认为您应该更改第二个复选框的名称。您的选择器不正确:
$('#form').find('input[type=checkbox]').eq(1)
应该是:
$('#form').find('input[type="checkbox"]').eq(1)
您也可以这样做(证明):
(注意使用
:复选框选择器,将eq(1)
括在选择器和合并选择器-表单选择器中,.find()
调用和.eq()
调用)给每个复选框一个id,然后执行以下操作
var $checkBox = $("#checkboxid");
您的代码在我看来是正确的,您还可以执行以下操作:
$('#form input:checkbox:last')
在这里拉小提琴var foo=function(){
var inputs=document.getElementById('form').getElementsByTagName('input');
对于(var i=0;i$(“#form”).find('input[type=checkbox'))。等式(1)选择该项。之后必须执行某些操作。例如:
$('#form').find('input[type=checkbox]').eq(1).val('5'); //Changes the value to 5
$('#form').find('input[type=checkbox]').eq(1).hide(); //hides it
使用jquery 1.7在我的chrome中工作。你能给出更详细的错误解释吗?(另外,我只会使用$(“#表单输入[type=“checkbox”]:eq(1)
或$(“#表单:checkbox:eq(1)
)如果你正确命名复选框,你可以更具体地使用$(“#表单:checkbox[name='second']))
。也许您很快就要运行您的代码了,看看它与jQuery(“#form:checkbox[name=“second”]:eq(1)”)相比,看起来有点过头了。
;)在我看来,这似乎是一种过激的行为,每次我看到包括完整的jquery库在内的站点,并且使用了jquery能力的1%左右;)我宁愿看到这样的情况,而不是基于全局变量编写糟糕的原始JavaScript,以不适合JavaScript的方式编写。多亏了jquery,显示不称职的地方就少了顺便说一句,我喜欢你的代码——它比大多数JS代码都好,但我仍然认为这是一种过分的杀伤力(特别是如果OP已经在其他任务中使用jQuery,我想).无论如何,我给+1表示好的和正确的代码。@John:也许它对你有用,但你应该仔细看看,特别是关于属性值的这部分:引号是mandatory@Tadeck这是必须做到的,我同意,但从1.5安开始,它就起作用了。
var foo = function(){
var inputs = document.getElementById('form').getElementsByTagName('input');
for(var i=0; i<inputs.length;i++){
var checkbox = inputs[i];
if(checkbox.type == 'checkbox' && checkbox.name == 'second'){
return checkbox;
}
}
};
$('#form').find('input[type=checkbox]').eq(1).val('5'); //Changes the value to 5
$('#form').find('input[type=checkbox]').eq(1).hide(); //hides it