说我有这个模型代码:
button.click(function(){generateForm();}
function generateForm(){
div.append(<input type='text' id='x'>);
}
我需要ID才能单独访问该元素。
避免在这种情况下出现ID冲突的最佳方法是什么?
答案 0 :(得分:2)
最好使用class
代替。但如果您仍然愿意使用id
,您可以考虑使用这样的计数器:
var idCounter = 1;
function generateForm(){
div.append("<input type='text' id='x-" + (idCounter++) + "'>");
}
答案 1 :(得分:2)
如果您绝对需要,可以使用当前时间戳作为ID。
这显然不会产生重复的ID,除非你每毫秒多次调用该函数或者你的用户经常陷入时间错误。
function generateForm(){
d = new Date();
div.append('<input type="text" id="unique-id-' + d.getTime() + '" >);
}
编辑:注意unique-id-
前缀,因为id不应该只是数字。
答案 2 :(得分:1)
如果您不想跟踪外部计数器,请尝试:
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不应以数字开头,因此在随机数前加上一个字母(或两个)。