【发布时间】:2014-03-11 00:19:54
【问题描述】:
我尝试为克隆的复选框设置唯一名称,而不是获取,让我们说:
Origin_1, Origin_2, Origin_3, for cloned 1, 2, 3 of the same element,
我明白了:
Origin_1, Orignin_11, Origin_111
我了解这个问题:克隆使用过去的克隆作为原始名称。我不知道应该采取什么方法。要么找到一种使用原始名称的方法,要么将前一个克隆的名称修剪一个字符,并确保计数器不会再次从头开始。您的提示将不胜感激。
这里是javascript代码:
$(window).load(function() {
var bindFunction = $('#quickmenuall input:checkbox').change(function(){
var uniqueId = 1;
var currentName = $(this).attr('name');
newName = currentName + (uniqueId++);
if($(this).is(':checked')){
var clonedClient = $(this).parent().parent().parent().parent().parent().clone(true)
var ori = $(this).parent().parent().parent().parent().parent()
clonedClient.insertBefore(ori)
$(this).attr('name', newName)
var clonedClient = $(this);
$(this).prop('checked', false)
} else {
var clonedClient = $(this);
clonedClient.parent().parent().parent().parent().parent().remove()
checkbox.bind("change", bindFunction);
bindFunction();
}
});
});
这是一个 jsfiddle:http://jsfiddle.net/Sergelie/ULywc/
【问题讨论】:
-
parent().parent().parent().parent().parent()你没有这样做 -
你能提供一个小提琴吗?刚刚注意到,你能把
var uniqueId = 1;放在change事件之外,这样它就不会每次都被覆盖了吗? -
避免使用链式
parent()方法 - 尝试使用closest()更多信息:api.jquery.com/closest -
您可以设置模板并从中创建新项目 - 请参阅 stackoverflow.com/questions/13487647/…
-
@Varinder 这里是 jsfiddle(我摆脱了几个 parent() :jsfiddle.net/Sergelie/ULywc
标签: javascript clone uniqueidentifier unique-id