我正在使用 Jquery 创建一个产品配置器。我的用户可以向他们的产品添加自定义文本行。所以你可以创建说... 4 个带有自定义文本的文本行。
我需要知道添加和删除这些行的最佳方法是什么。目前我有以下用于添加行的代码......
//Add Text Button
$('a#addText').live('click', function(event) {
event.preventDefault();
//Scroll up the text editor
$('.textOptions').slideUp();
$('#customText').val('');
//count how many items are in the ul textList
var textItems = $('ul#textList li').size();
var nextNumber = textItems + 1;
if(textItems <= 5) {
//Change input to reflect current text being changed
$('input#currentTextNumber').val(nextNumber);
//Append a UL Item to the textList
$('ul#textList').append('<li id="textItem'+nextNumber+'">Text Line. +$5.00 <a class="deleteTextItem" href="'+nextNumber+'">Delete</a></li>');
//Scroll down the text editor
$('.textOptions').slideDown();
}else {
alert('you can have a maximum of 6 textual inputs!');
}
});
我可能不是这样做的最好方法,但基本上我有一个空的 UL 列表开始。因此,当他们单击“添加文本行”时,它会找出无序列表中有多少列表元素,将值添加 1 并放置一个新的列表元素,其 id 为 TextItem1 或 TextItem2 或我们所在的任何数字。
我遇到的问题是,当您单击删除项目时,一切都搞砸了,因为当您再次添加项目时,所有数字都不正确。我考虑过编写某种逻辑,说明要删除的所有数字之上的所有数字都从它们的值中减去 1,并且下面的所有数字保持不变。但我认为我只是以错误的方式解决这个问题。
任何有关添加和删除这些文本行的最简单方法的建议都值得赞赏。