jquery,如何找到父div id?

时间:2012-01-12 23:54:18

标签: jquery hide parent

我试图隐藏包含点击链接的父div:

<div  class="user" id="request_1">
    <div class="information">
       <ul>
          <li><a href="javascript:void(0)" class="approve_friends agree">Agree1</a></li>
       </ul>
    </div>
</div> 
<div  class="user" id="request_2">
    <div class="information">
       <ul>
          <li><a href="javascript:void(0)" class="approve_friends agree">Agree3</a></li>
       </ul>
    </div>
</div>
<div  class="user" id="request_3">
    <div class="information">
       <ul>
          <li><a href="javascript:void(0)" class="approve_friends agree">Agree4</a></li>
       </ul>
    </div>
</div> 

$('.agree').live("click", function(){
        var currentId2 = $(this).parent("div:second").attr('id');
        alert (currentId2);
       $('#'.currentId).hide('slow');
});

所以当我点击Agree1时,我想要隐藏身份request_1

的共同对象div

这是jsfiddle

任何想法我做错了什么?

由于

4 个答案:

答案 0 :(得分:5)

$(this).closest("div.user").hide('slow');

答案 1 :(得分:3)

为什么不这样做:

$('.agree').live("click", function(){
 $(this).parents('div.user').hide('slow');
});

答案 2 :(得分:2)

我使用父母代替父母,隐藏元素的行需要一个+号,而不是一个点。

$('.agree').live("click", function(){
        var currentId2 = $(this).parents(".user").attr('id');
        alert (currentId2);
       $('#' + currentId2).hide('slow');
});

http://jsfiddle.net/YThmH/1/

答案 3 :(得分:0)

parent()只上升一级,parent('div:second')表示

  1. 上一级并选择此父级
  2. 在你现在拥有的集合上(当时只包含<li>),取第二个div并丢弃其余部分(所以最后得到一个空集)。
  3. 您需要使用parents(selector),这意味着将我所在的所有父母带到顶部,由选择器进行过滤。

      

    .parents()和.parent()方法类似,只是后者只在DOM树中向上移动一层。

    此代码按预期工作: http://jsfiddle.net/YThmH/3/