我用于创建唯一ID的javascript无效

时间:2014-10-09 14:49:07

标签: javascript

我正在尝试创建独特的id,我无法理解为什么它不起作用。猜猜我是盲目地盯着同样的代码太久了。如果有人能帮助我,我将不胜感激! :)

function laggtill(cool, namnVara) {

  var date = new Date();
  var id = "" + date.getHours() + date.getMinutes() + date.getSeconds() + date.getMilliseconds();

  var vara = document.createElement("li");

  var checkBox = document.createElement("input");
  checkBox.type = "checkbox";
  var span = document.createElement("span");
  span.innerText = namnVara;

  vara.appendChild(checkBox);
  vara.appendChild(span);

  cool.appendChild(vara);
}

var button = document.getElementById("knapp");
button.onclick = function() {

  var skriva = document.getElementById("skriva")
  var namnVara = skriva.value;

  if (!namnVara || namnVara == "" || namnVara == " ") {
    return false;
  }

};

2 个答案:

答案 0 :(得分:1)

从jQuery UI中窃取此内容。这很简单,有效:

// at initialization
var uuid = 0;

// and when you need a unique id
var uniqueId = 'uid-' + (++uuid);

不需要复杂的东西,如获取约会等。unique != complicated

并将ID设置为元素:

var element = document.createElement('div');
element.id = uniqueId;

如果你想在脚本中更频繁地使用它,你可以创建一个函数:

var uuid = 0; // put it in the 'global scope'
var uniqueId = function() {
    return 'uid-' + (++uuid);
};

alert(uniqueId()); // uid-1
alert(uniqueId()); // uid-2

答案 1 :(得分:0)

如果你真的想保留日期。

var d = new Date();
var id = "" + d.getHours() + d.getMinutes() + d.getSeconds()+ d.getMilliseconds();

添加一些内容以生成guid:

var guid = (function() {
function s4() {
return Math.floor((1 + Math.random()) * 0x10000)
           .toString(16)
           .substring(1);
}
return function() {
 return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
       s4() + '-' + s4() + s4() + s4();
};
})();

http://jsfiddle.net/mz4qpg1L/1/

如果你想将id附加到你的控件上,我喜欢直接附加html:

vara.appendChild('<span id=' + id + ' ></span>');

这样你可以放置你想要的任何属性。