JQuery, как найти родительский идентификатор Div? - PullRequest
1 голос
/ 13 января 2012

я пытаюсь скрыть родительский 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, я хочу скрыть corespondent div с идентификатором request_1

вот это jsfiddle .

есть идеи, что я делаю не так?

Спасибо

Ответы [ 4 ]

5 голосов
/ 13 января 2012
$(this).closest("div.user").hide('slow');
3 голосов
/ 13 января 2012

Почему бы просто не сделать это:

$('.agree').live("click", function(){
 $(this).parents('div.user').hide('slow');
});
2 голосов
/ 13 января 2012

Я использовал родителей вместо родителей, и в строке, где вы скрываете элемент, нужен знак +, а не точка.

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

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

0 голосов
/ 13 января 2012

parent () поднимается только на один уровень, parent ('div: second') означает, что

  1. поднимается на один уровень и выбирает этого родителя
  2. в наборе, который у вас есть сейчас(которые содержат только <li> в этой точке), возьмите второй div и отбросьте остальные (так что вы получите пустой набор).

Вам нужно использовать родителей (селектор) , что означает «взять всех родителей оттуда, где я наверху», отфильтрованные селектором.

Методы .parents () и .parent () похожи, за исключением последнегоперемещается только на один уровень вверх по дереву DOM.

Этот код работает как задумано: http://jsfiddle.net/YThmH/3/

...