Проблема в том, что вы используете устаревший атрибут onclick
. В вызываемой ею функции this
будет ссылаться на window
, а не на элемент, вызвавший событие.
Чтобы исправить это и улучшить свою логику, удалите встроенный обработчик событий и используйте вместо него делегированный. :
jQuery(function($) {
$('#btn-add').on('click', function() {
let ipt = '<div><input type="text" value=""><input type="button" class="btn-rm" value="Remove"></div>';
$('#ipt-list').append(ipt);
});
$('#ipt-list').on('click', '.btn-rm', function() {
$(this).parent().remove();
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="ipt-list"></div>
<input type="button" id="btn-add" value="Add">
Также обратите внимание, что я изменил обе кнопки на type="button"
. Если вы собираетесь отменить событие в обоих случаях, тип submit
становится избыточным.