如何使用ajax添加链接以消除一组框


How to add a link to eliminate a set of boxes using ajax

我对这个代码有麻烦。我试图在最后添加一个消除链接,但我似乎无法消除当我按下添加链接时出现的5组内的所有框。我希望能够删除5个盒子里的所有盒子,其他的都不能删除。我试图做的是将这行代码放在var box_html5的末尾,但它不起作用。这是一个删除框的函数,我想让它删除这些框。

<a href="#" class="remove-box">Remove</a>

我试图在语句中创建一个循环,但它不正确。

我还考虑过制作一个if语句,上面的代码片段将在其中,并声明,如果该链接被按下,然后删除box_html1, box_html2, box_html3…等。对于所选的5个集合。我还尝试像这样回显代码:

echo ('<a href="#" class="remove-box">Remove</a>');

,它似乎仍然不工作。

<?php
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript" src="//code.jquery.com/jquery-latest.js"></script>
<style type="text/css">
<!--
#main {
    max-width: 800px;
    margin: 0 auto;
}
-->
</style>
</head>
<body>
<div id="main">
    <h1>Movie Night</h1>
    <div class="my-form">
        <form role="form" method="post">
            <p class="text-box">
                <label for="box1">Genre<span class="box-number">1</span></label>
                <input type="text" name="boxes[]" value="" id="box1" />
                <a class="add-box" href="#">Add More</a>
            </p>
            <p><input type="submit" value="Submit" /></p>
        </form>
    </div>
</div>
<script type="text/javascript">
jQuery(document).ready(function($){
    $('.my-form .add-box').click(function(){
        var n = $('.text-box').length + 1;
        if( 15 < n ) {
            alert('Too many. Not enought Time to watch');
            return false;
        }
        var box_html1 = $('<p class="text-box">Movie<input name="mov1" type="text"></p>');
        box_html1.hide();
        $('.my-form p.text-box:last').after(box_html1);
        box_html1.fadeIn('slow');
        var box_html2 = $('<p class="text-box">Movie<input name="mov2" type="text"></p>');
        box_html2.hide();
        $('.my-form p.text-box:last').after(box_html2);
        box_html2.fadeIn('slow');
        var box_html3 = $('<p class="text-box">Movie<input name="mov3" type="text"></p>');
        box_html3.hide();
        $('.my-form p.text-box:last').after(box_html3);
        box_html3.fadeIn('slow');
        var box_html4 = $('<p class="text-box">Movie<input name="mov4" type="text"><a href="#" class="remove-box">Remove</a></p>');
        box_html4.hide();
        $('.my-form p.text-box:last').after(box_html4);
        box_html4.fadeIn('slow');
        var box_html5 = $('<p class="text-box">Movie<input name="mov5" type="text"></p>');
        box_html5.hide();
        $('.my-form p.text-box:last').after(box_html5);
        box_html5.fadeIn('slow');
        <!--<a href="#" class="remove-box">Remove</a>-->
        return false;
    });
    $('.my-form').on('click', '.remove-box', function(){
        $(this).parent().css( 'background-color', '#FF6C6C' );
        $(this).parent().fadeOut("slow", function() {
            $(this).remove();
            $('.box-number').each(function(index){
                $(this).text( index + 1 );
            });
        });
        return false;
    });
});
</script>
</body>
</html>

您需要探索索引和切片jquery函数。

在本例中删除操作处理程序:

$('.my-form').on('click', '.remove-box', function(event)
{
    var index = $(this).parent().index();
    $('.text-box').slice( index - 3, index + 2 ).remove();
    event.preventDefault();
});

小提琴:http://jsfiddle.net/ejcXd/4/