2016-09-20 4 views
3

Мне нужно удалить весь div, который имеет класс «вход-группа». Я должен сделать это с помощью jQuery. Я пробовал через jQuery, но div не удаляется.Мне нужно удалить родительский div через jQuery

Вот мой код,

$(document).ready(function() { 
 
    $(".wrapper").on('click', '.rmvBtn', function(e) { 
 
    e.preventDefault(); 
 
    $(this).parent('div').remove(); 
 
    x--; 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="wrapper"> 
 
    <div class="input-group"> 
 
    <input type="text" class="form-control" name="field_name[]" value="" /> 
 
    <span class="input-group-addon"> 
 
     <a href="#" class="rmvBtn" title="Remove field""> 
 
     <span class="glyphicon glyphicon-minus"></span> 
 
     </a> 
 
    </span> 
 
    </div> 
 
</div>

Пожалуйста, дайте мне знать, какие ошибки в моем коде? Заранее спасибо.

ответ

3

Можете ли вы попробовать ниже код:

$(document).ready(function(){ 

    $(".wrapper").on('click', '.rmvBtn', function(e){ 
      e.preventDefault(); 
      $(this).closest('div.input-group').remove(); 
      x--; 
    }); 

}); 

$.closest для прохождения через своих предков в дереве DOM, пока мы не получим совпадение.

В вашем коде; rmvBtn есть внутри <span> бирка. Следовательно, $(this).parent('div') ничего не возвращает, поскольку $.parent() пересекает только один уровень вверх в дереве DOM.

+0

Большое спасибо, это сработало нормально. –

+0

добро пожаловать @SandeepKumar ... ':)'! – vijayP

1

parents() попробовать вместо parent()

$(this).parents('.input-group').remove(); 
+1

'partens (" сНу ")' будет удалять 'wrapper' тоже – eisbehr

+0

О, спасибо, я отредактировал свой ответ :) –

+0

Ответ по-прежнему не так, мы не хотим удалять' .wrapper'! – eisbehr

2

Используйте closest вместо parents, и с вами все будет в порядке.
И ваш HTML неверен, тэг a имеет два значения "" по последнему атрибуту.

$(function() { 
 
    $(".wrapper").on('click', '.rmvBtn', function(e) { 
 
     e.preventDefault(); 
 
     $(this).closest("div").remove(); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="wrapper"> 
 
    <div class="input-group"> 
 
    <input type="text" class="form-control" name="field_name[]" value="" /> 
 
    <span class="input-group-addon"> 
 
     <a href="#" class="rmvBtn" title="Remove field"> 
 
     <span class="glyphicon glyphicon-minus">btn</span> 
 
     </a> 
 
    </span> 
 
    </div> 
 
</div>

1

Используйте closest, чтобы найти ближайший элемент с указанным селектором. Самый близкий элемент найден, пузырясь от текущего элемента.

использовать также селектор класса DIV, чтобы быть безопасным, удаляя необходимый DIV в случае дополнительных Див х добавляются в ваш HTML

$(this).closest('div.input-group').remove();

$(document).ready(function() { 
 
    $(".wrapper").on('click', '.rmvBtn', function(e) { 
 
    e.preventDefault(); 
 
    $(this).closest('div.input-group').remove(); 
 
    // x--; 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="wrapper"> 
 
    <div class="input-group"> 
 
    <input type="text" class="form-control" name="field_name[]" value="" /> 
 
    <span class="input-group-addon"> 
 
     <a href="#" class="rmvBtn" title="Remove field""> 
 
     <span class="glyphicon glyphicon-minus">remove</span> 
 
     </a> 
 
    </span> 
 
    </div> 
 
</div>

Смежные вопросы