我的目标是在初始加载时只有一个元素,该元素应具有id="something_O"。当点击添加链接时,在已经存在的元素下方添加新的相同html元素,不是用id="something_o",而是用id="something_1"或最后一个元素+ 1。用户应该能够无限地添加这些元素。当用户点击删除时,元素应该消失。
有什么想法吗?这里准备了一个示例,以便更轻松地进行帮助...
我的目标是在初始加载时只有一个元素,该元素应具有id="something_O"。当点击添加链接时,在已经存在的元素下方添加新的相同html元素,不是用id="something_o",而是用id="something_1"或最后一个元素+ 1。用户应该能够无限地添加这些元素。当用户点击删除时,元素应该消失。
有什么想法吗?这里准备了一个示例,以便更轻松地进行帮助...
$(document).ready(function() {
$('body').on('click', '.AddEl', function() {
$('.actions:first')
.parent()
.clone()
.attr('id', 'element_' + $('.actions').length)
.insertAfter($('.actions:last').parent());
});
$('body').on('click', '.RemoveEl', function() {
$(this).closest('.actions').parent().remove();
});
});
id="element_0"
,并使用CSS选择器对其及所有随后创建的元素进行了定位:
div[id^=element] {
/* css */
}
这可能会更简单,但这只是我的第一印象。
编辑提供了稍微改进的版本,初始添加略微更加简洁,如果元素被添加/删除,还可以防止生成重复的id
:
$(document).ready(function() {
$('body').on('click', '.AddEl', function() {
var $elems = $('.actions').parent();
$elems
.first()
.clone()
.insertAfter($elems.last());
$('div[id^="element_"]').each(
function(i){
$(this).attr('id','element_' + i);
});
});
$('body').on('click', '.RemoveEl', function() {
$(this).closest('.actions').parent().remove();
});
});
.attr('id', 'element_' + $('.actions').length+1)
- Constantin Großvar counter = 1;
$('.AddEl').live('click', function () {
var el = $('#element_1').clone().attr('id', 'element_' + ++counter).appendTo('body');
});
$('.RemoveEl').live('click', function () {
var el = $(this).parents('.elem')
if (el.get(0).id !== 'element_1') el.remove();
});
element_1
来创建克隆。您想让我修改代码吗? - Ketan Modi