jquery单击最高父输入的子项

时间:2013-06-18 10:01:18

标签: javascript jquery

当我点击第二个时,我试图点击第一个输入复选框。

<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();
});

我在这里错过了什么?

5 个答案:

答案 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();
});