javascript - 如何使用 jQuery 添加重复的 div?

标签 javascript jquery

当我用 jQuery 单击新按钮时,它会添加 div,但它只添加一个。当我从 DevTools 检查时,它不断创建相同的位置。但我希望它在那之后再添加一个。你能帮我吗?

HTML 代码

    <div class="text-left" style="margin-bottom: 15px;">
        <button type="button" class="add-extra-email-button btn btn-success" disabled><i class="fas fa-plus"></i></button>
    </div>

    <div class="clone"></div>

这里是示例 js 代码

    $('.add-extra-email-button').click(function() {
        var element = $('.clone');

        element.html(
            '<div class="clone_edilen_email">' +
                '<li>' +
                    '<a href="javascript:;"> Test' +
                    '<i class="fa fa-circle-o-notch fa-spin fa-3x fa-fw"></i>' +
                    '</a>' +
                '</li>' +
            '</div>'
        );

        $('.clone_edilen_email').addClass('single-email remove-email');
        $('.single-email').append('<div class="btn-delete-branch-email"><button class="remove-field-email btn btn-danger"><i class="fas fa-trash"></i></button></div>');
        $('.clone_edilen_email > .single-email').attr("class", "remove-email");
    });


    $(document).on('click', '.remove-field-email', function(e) {
        $(this).parent('.btn-delete-branch-email').parent('.remove-email').remove();
        e.preventDefault();
    });

最佳答案

如果我理解正确的话,你想添加<div class="clone_edilen_email">一次又一次,只要有人点击 .add-extra-email-button按钮。

一般情况下,调用 element.html('<some_wild_html></some_wild_html>')将始终覆盖 element 的完整内部内容与 <some_wild_html></some_wild_html> 。此外,如果该元素已经包含一些其他子元素,它们将会丢失。在您给定的代码示例中,我假设您的意图是扩展元素的 html 而不是替换它。

这是我的建议:

$('.add-extra-email-button').click(function() {
 var newDiv = $('<div class="clone_edilen_mail"></div>');
 newDiv.html('<li><a href="javascript:;"> Test<i class="fa fa-circle-o-notch fa-spin fa-3x fa-fw"></i></li>');
 $('.clone').append(newDiv); // This is the important clue here!

 // afterwards you may insert your residual class stuff
 //  $('.clone_edilen_email').addClass('single-email remove-email'); <- I would suggest you add these classes already at the begining, where I set the variable "newDiv"
 // ...
 // $('.single-email').append('<div class="btn-delete-branch-email"><button class="remove-field-email btn btn-danger"><i class="fas fa-trash"></i></button></div>');
 // $('.clone_edilen_email > .single-email').attr("class", "remove-email");
});

// .. your other code may follow here ...
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="clone">I am a clone-div!</div>
<button class="add-extra-email-button">Click Me!</button>

希望这对您有帮助!

关于javascript - 如何使用 jQuery 添加重复的 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58744293/

相关文章:

javascript - 如何在 URL 参数中提交哈希键?

javascript - 如何使 JavaScript 动态化?

javascript - 如何使表单响应

javascript - 在 AWS Cognito 上创建独特的自定义属性

Javascript 必须单击表单之外的按钮两次

javascript - 为什么我的 javascript 呈现的导航栏没有被抓取?

javascript - jQuery div 类更改

php - 制作一个真正的随机数生成器?

jquery - 在 Jquery 上触发函数

javascript - 输入类型文件的jquery显示值到其他元素