当我点击第二个时,我试图点击第一个输入复选框。
<li>
<div>
<input type='checkbox' value='x'/>
</div>
<ul>
<li>
<ul>
<li>
<div>
<input type='checkbox' id='check' value='b'/>
</div>
</li>
</ul>
</li>
</ul>
</li>
这样做无济于事:
$('#check').click(function(){
$('this').parents('li #parent').children('div').find('input').click();
});
我在这里错过了什么?
答案 0 :(得分:2)
$('#check').click(function(){
$('#parent').find('input').first().click();
});
如果您使用parent
作为课程
<li class='parent'>
然后你可以这样做 -
$('#check').click(function(){
$(this).closest('.parent').find('input').first().click();
});
答案 1 :(得分:1)
由于id是唯一的,因此无需寻找任何父母,您可以直接使用id
$('#check').click(function(){
$(this).closest('li[id]').find('input').first().click();
});
答案 2 :(得分:0)
为第一个复选框指定自己的ID。然后你可以使用
$('#firstcheck').prop('checked',true);
答案 3 :(得分:0)
我建议,假设id
是动态生成的:
$('#check').click(function(){
$(this).closest('div[id]').find('input').first().click();
});
如果您在其他答案的评论中注明,id
的{{1}} 也动态,我强烈建议您添加一致的类名称#check
- 元素,以绑定input
事件处理程序。否则,您最终必须检查“深度”或祖先的数量,以便决定 点击哪个,触发哪个 click事件处理程序。
答案 4 :(得分:0)
这将在没有ID的情况下运行,但正如David Thomas所说,使用ID更有效。
$('#check').click(function(){
$(this).parents('li').last().find('div:first input').click();
});