Javascript 如何在动态生成元素时避免ID冲突
假设我有这个模型代码:Javascript 如何在动态生成元素时避免ID冲突,javascript,jquery,Javascript,Jquery,假设我有这个模型代码: button.click(function(){generateForm();} function generateForm(){ div.append(<input type='text' id='x'>); } 按钮。单击(函数(){generateForm();} 函数generateForm(){ div.append(); } 我需要ID才能单独访问元素 强>在这样的场景中避免ID冲突的最好方法是什么?< /强>
button.click(function(){generateForm();}
function generateForm(){
div.append(<input type='text' id='x'>);
}
按钮。单击(函数(){generateForm();}
函数generateForm(){
div.append();
}
我需要ID才能单独访问元素
<>强>在这样的场景中避免ID冲突的最好方法是什么?< /强> < p> >使用<代码>类< /代码>,但是如果您仍然愿意使用<代码> ID <代码>,您可以考虑使用这样的计数器:
var idCounter = 1;
function generateForm(){
div.append("<input type='text' id='x-" + (idCounter++) + "'>");
}
var idCounter=1;
函数generateForm(){
第4节附加(“”);
}
<>代码>更好的是使用<代码>类< /代码>,但是如果您仍然愿意使用<代码> ID <代码>,您可以考虑使用这样的计数器:
var idCounter = 1;
function generateForm(){
div.append("<input type='text' id='x-" + (idCounter++) + "'>");
}
var idCounter=1;
函数generateForm(){
第4节附加(“”);
}
如果您确实需要,可以使用当前时间戳作为id
这显然不会产生重复的ID,除非您每毫秒多次调用该函数,或者您的用户经常陷入TimeLoop中
函数generateForm(){
d=新日期();
div.append(');
}
编辑:请注意唯一id-
前缀,因为id不应仅为数字。如果您确实需要,可以使用当前时间戳作为id
这显然不会产生重复的ID,除非您每毫秒多次调用该函数,或者您的用户经常陷入TimeLoop中
函数generateForm(){
d=新日期();
div.append(');
}
编辑:请注意唯一id-
前缀,因为id不应仅为数字。如果不想跟踪外部计数器,请尝试:
function makeAVeryRandomId () {
var d = new Date(),
a = ["0","1","2","3","4","5","6","7","8","9"],
i = 10,
m = '';
while (i--) {
m += a[Math.floor(Math.random() * a.length)];
};
return d.getTime() + m;
};
请记住,ID
s不应以数字开头,因此在随机数前面加上一个字母(或两个)。如果不想跟踪外部计数器,请尝试:
function makeAVeryRandomId () {
var d = new Date(),
a = ["0","1","2","3","4","5","6","7","8","9"],
i = 10,
m = '';
while (i--) {
m += a[Math.floor(Math.random() * a.length)];
};
return d.getTime() + m;
};
请记住,ID
s不应该以数字开头,所以在随机数前面加上一个字母(或两个字母).这取决于您正在使用它做什么。在服务器端生成id可能最有意义。我将用有关该场景的更多信息更新问题。您可以在输入的id中添加一个随机数,这样就不会有冲突,或者在使用该id创建新输入之前检查给定的id是否已在使用中nds您正在使用它做什么。在服务器端生成id可能最有意义。我将使用有关该场景的更多信息更新问题。您可以向输入的id添加一个随机数,这样就不会有冲突,或者在使用该id创建新输入之前检查给定id是否已在使用感谢您的代表ly。你能详细说明在这种情况下使用类是如何工作的吗?你的问题仍然不清楚。你能告诉我你想对这些文本字段做什么吗?谢谢你的回答。你能详细说明在这种情况下使用类是如何工作的吗?你的问题仍然不清楚。你能告诉我你想做什么吗这些文本字段是什么?