javascript - 按下按钮时删除父 div

标签 javascript jquery html

尝试创建一个动态按钮系统来添加/删除点击输入。我有 addButton 工作,但没有 deleteButton。我错过了什么?

$(document).ready(function() {
    var maxFields = 20;
    var addButton = $('#plusOne');
    var deleteButton = $('#minusOne');
    var wrapper = $('#userNumbers');
    var fieldInput = '<div><input type="text" name="persons" id="persons"/></div>';
    var x = 1;

    $(addButton).click(function () {
        if (x < maxFields) {
            x++;
            $(wrapper).append(fieldInput);
        }
    });

    $(deleteButton).click(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>
<button type="button" id="plusOne">+</button>
    <button type="button" id="minusOne">-</button>

    <div id="userNumbers">
       <p>
        <input type="text" id="person" name="person">
        </p>
    </div>

最佳答案

问题是,$(this)删除按钮处理程序内部指的是减号按钮。那个减号按钮不在每个项目中(它在顶部。并且没有父 div),因此您需要以其他方式引用要删除的元素。在我下面的例子中,我选择了最后一个 <div>$(wrapper) :

$(document).ready(function() {
    var maxFields = 20;
    var addButton = $('#plusOne');
    var deleteButton = $('#minusOne');
    var wrapper = $('#userNumbers');
    var fieldInput = '<div><input type="text" name="persons" id="persons"/></div>';
    var x = 1;

    $(addButton).click(function () {
        if (x < maxFields) {
            x++;
            $(wrapper).append(fieldInput);
        }
    });

    $(deleteButton).click(function(e) {
        e.preventDefault();
        $(wrapper).find('div:last').remove();
        x--;
    });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button type="button" id="plusOne">+</button>
    <button type="button" id="minusOne">-</button>

    <div id="userNumbers">
       <p>
        <input type="text" id="person" name="person">
        </p>
    </div>

关于javascript - 按下按钮时删除父 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52902520/

相关文章:

javascript - 按键事件不起作用

css - 为什么滚动条在这个水平 DIV 上不起作用?

html - CSS - 哪种方式最好包含 CSS 以提高网页性能?

javascript - 如果值为 null、未定义或为空,如何从对象和/或数组中删除属性?

javascript - `ng-class` 无法处理来自包含模板的功能调用

javascript - 在 mmenu 中选择所有直接父列表条目

javascript - 我应该如何将 HTML/CSS 内容发送到服务器?

jquery - 如何更改或添加 jquery 移动加载程序小部件的类?

javascript - 防止 iOS WebApp 中的水平滚动

javascript - 为什么 'o'是真的? JavaScript( Angular )