2013-05-31 4 views
1

Я пытаюсь удалить родительский div со страницы, когда вы нажимаете href внутри div. Может быть больше одного из одного div, или я бы просто использовал имя класса. Я попытался использовать $ (this) .remove(); но это удаляет только кнопку удаления. Я изучил родительские атрибуты, но я не уверен, что полностью понимаю, как это работает.Удаление Div, которое нажал элемент, находится внутри

Это то, что у меня есть:

<script>   
$(".delete-button").click(function(){ 
    $(this).remove();   
}); 
</script> 


<div class="bottomsurgicalhistory"> 

    "Div Content is Here" 
    <li class="delete"><a href="#" class="delete-button"></a></li> 
</div> 

<div class="bottomsurgicalhistory"> 

    "Div Content is Here" 
    <li class="delete"><a href="#" class="delete-button"></a></li> 
</div> 

Вся помощь ценится!

+1

Попробуйте '$ (this) .closest (" .dowsuricalhistory "). Remove();'. В вашем HTML вы можете легко использовать '$ (this) .parent(). Remove();'. Вот документы для 'ближайшего()': http://api.jquery.com/closest/. Приятно/надежно использовать, когда вы не знаете, как вложен элемент, но вы знаете, что какой-то предок будет соответствовать селектору и будет работать – Ian

+0

Обратите внимание, что элементы LI должны находиться внутри UL, я предполагаю, что это просто псевдо код, но все же! – adeneo

ответ

3

Если тег скрипта предшествует элементам, вам понадобится функция готовности дома и предотвращение прокрутки по умолчанию вверху при использовании хэша в качестве href, как правило, хорошая идея. При нажатии на кнопку удаления, используйте closest(), чтобы найти ближайший родитель, который Мэйтс в bottomsurgicalhistory класс:

$(function() { 
    $(".delete-button").on('click', function(e){ 
     e.preventDefault(); 
     $(this).closest('.bottomsurgicalhistory').remove();   
    }); 
}); 
+0

Спасибо, это работает отлично! –

+0

@KevinWeber - добро пожаловать! – adeneo

2

Просто замените ваш следующий код:

$(this).remove(); 

для этого:

$(this).parent().remove(); 
1

Попробуй это.

$(this).parent().remove();