2014-10-09 3 views
-2

Я пытаюсь создать уникальный id s, и я не понимаю, почему он не работает. Думаю, я слишком долго смотрю на тот же код. Буду признателен, если кто-нибудь сможет мне помочь! :)мой javascript для создания уникальных идентификаторов не работает

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; 
    } 

}; 
+1

Не могли бы вы указать «не работает»? – giorgio

+4

Вы никогда не используете * значение 'id'. Вы хотели добавить его как атрибут 'id'' checkBox' или 'span'? –

+0

он не создает никаких идентификаторов, когда я смотрю на свои элементы, есть только пробел, нет ID! – MoaLarssonn

ответ

1

Украли это из пользовательского интерфейса jQuery. Это так просто, как это эффективно:

// at initialization 
var uuid = 0; 

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

Нет необходимости в сложной вещи, как получение даты и т.д. unique != complicated

и установить идентификатор элемента:

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

это школьный проект, поэтому я не могу использовать jQuery! но спасибо! – MoaLarssonn

+0

это не jQuery;) просто украл «логику» из jQuery источника пользовательского интерфейса – giorgio

0

if вы действительно хотите сохранить дату.

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/

если вы хотите добавить идентификатор к Youre управления, я люблю добавляющим HTML непосредственно:

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

таким образом вы можете поместить любой атрибут, который вы хотите.

Смежные вопросы