1

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

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

我在这里想念什么?

4

5 回答 5

2
$('#check').click(function(){
  $('#parent').find('input').first().click();
});

如果你parent用作类

<li class='parent'>

然后你可以这样做 -

$('#check').click(function(){
  $(this).closest('.parent').find('input').first().click();
});
于 2013-06-18T10:02:29.433 回答
1

由于 id 是唯一的,因此无需寻找任何父母,您可以直接使用id

$('#check').click(function(){
    $(this).closest('li[id]').find('input').first().click();
});
于 2013-06-18T10:03:54.317 回答
0

我建议,因为它id是动态生成的:

$('#check').click(function(){
    $(this).closest('div[id]').find('input').first().click();
});

如果正如您在对其他答案的评论中所指出的那样,for 也是id动态#check的,我强烈建议将一致的类名添加到-element 以绑定事件处理程序。否则,您最终将不得不检查“深度”或祖先的数量,以便决定应该点击哪个,以及应该触发点击事件处理程序。inputclick()

于 2013-06-18T10:07:36.160 回答
0

给第一个复选框自己的 ID。然后你可以使用

$('#firstcheck').prop('checked',true);
于 2013-06-18T10:05:40.620 回答
0

这将在没有 ID 的情况下工作,但正如 David Thomas 所提到的,使用 ID 更有效。

$('#check').click(function(){
    $(this).parents('li').last().find('div:first input').click();
});
于 2013-06-18T10:12:07.620 回答