代码之家  ›  专栏  ›  技术社区  ›  pixeltocode

jQuery—单击另一个父级的第n个子级时,选择父级的第n个子级

  •  2
  • pixeltocode  · 技术社区  · 14 年前

    如何在一组子对象中选择第n个子对象 <div> 当一组孩子中的第n个孩子 <li> 是否单击了的?

    <ul>
     <li><a href="#">link</a></li>
     <li><a href="#">link</a></li>
     ......
     <li><a href="#">link</a></li>
    </ul>
    
    <div class="info">
    ...
    </div>
    <div class="info">
    ...
    </div>
    ......
    <div class="info">
    ...
    </div>
    

    例如,当 <a> 第二天 <li> 点击,第二个 <div class="info">

    谢谢

    3 回复  |  直到 14 年前
        1
  •  0
  •   Ben Rowe    14 年前

    这应该给你一个大致的想法(未经测试)

    $('ul li').click(function() {
      var i = $(this).index();
      $('.info:eq('+i+')').addClass('selected');
      return false;
    });​
    

    我已经创建了一个快速演示来展示这一点: http://jsfiddle.net/Jbgkm/

        2
  •  2
  •   Mark Elliot    14 年前

    这样做有效:

    $("li a").click(function(){ 
        $(".info").eq($("li a").index(this)).hide();
    });​
    

    (样品) http://jsfiddle.net/KGQDz/11/

        3
  •  1
  •   MarioRicalde    14 年前

    解决方案很简单,经过代码测试。将隐藏单击的元素。这里有一个包含更多元素的工作示例 http://jsfiddle.net/v2vqm/

    $("ul li a").each(function(index){
       $(this).click(function(){
         $('.info').eq(index).hide();
       });
    });
    

    li a index ,我们稍后使用它来选择正确的 .info 元素通过 eq(index)

    请注意 hide() 只是为了演示。

    相关文件:

    http://api.jquery.com/each/

    http://api.jquery.com/eq/