我使用clone()和remove()与div元素.如何制作克隆限制?例如,我可以克隆最多10个div元素. $('.wrapper').on('click', '.remove', function() { $('.remove').closest('.wrapper').find('.element').not(':first').last().remove()
$('.wrapper').on('click', '.remove', function() { $('.remove').closest('.wrapper').find('.element').not(':first').last().remove(); }); $('.wrapper').on('click', '.clone', function() { $('.clone').closest('.wrapper').find('.element').first().clone().appendTo('.results'); });
body { padding: 1em; } .element { background: #eee; width: 200px; height: 40px; padding: 20px 20px 0; text-align: center; margin: 5px 0; } .buttons { clear: both; margin-top: 10px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="wrapper"> <div class="element"> </div> <div class="results"></div> <div class="buttons"> <button class="clone">clone</button> <button class="remove">remove</button> </div> </div>要使其工作,您可以在克隆下一个元素之前检查.result .element元素的数量.如果数量达到限制,请不要执行克隆操作.
请注意,在下面的示例中,我将限制设置为2以使测试更容易,并且我还对选择器进行了一些更改以使它们更简洁.
$('.wrapper').on('click', '.remove', function() { $(this).closest('.wrapper').find('.element:not(:first):last').remove(); setCloneButtonVisibility(); }); var cloneLimit = 2; $('.wrapper').on('click', '.clone', function() { if ($('.results .element').length <= cloneLimit) { // just to make testing easier $(this).closest('.wrapper').find('.element:first').clone().appendTo('.results'); } setCloneButtonVisibility(); }); function setCloneButtonVisibility() { $('.wrapper .clone').toggle($('.results .element').length < cloneLimit); }
body { padding: 1em; } .element { background: #eee; width: 200px; height: 40px; padding: 20px 20px 0; text-align: center; margin: 5px 0; } .buttons { clear: both; margin-top: 10px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="wrapper"> <div class="element"></div> <div class="results"></div> <div class="buttons"> <button class="clone">clone</button> <button class="remove">remove</button> </div> </div>