Я хочу создать список todo с добавлением и отмечать как завершенную функцию. Элемент li должен быть уникальным, потому что я использовал label for each checkbox on each li
.
то я использую $('ul li').length + 1;
установить ярлык для идентификатора. поэтому каждый флажок уникален.
проблема в том, что я использовал remove()
когда флажок установлен. он разрушил нумерацию. например, I have 1,2,3 and я checked 1,2 then я add a new item
, этот элемент будет иметь ID 3, что является столкновением. Любое решение?
Не рассчитывайте на их количество, чтобы получить уникальные идентификаторы. Вот функция, которая возвращает уникальный идентификатор каждый раз, когда он вызывается:
function getUid(prefix) {
return prefix + '_' + getUid.count++;
}
getUid.count = 0;
console.log(getUid('checkbox')); // checkbox_0
console.log(getUid('checkbox')); // checkbox_1
console.log(getUid('checkbox')); // checkbox_2
console.log(getUid('checkbox')); // checkbox_3
console.log(getUid('li')); // li_4
Действительно безопасное решение (частная переменная):
var getUid = function() {
var count = 0;
return function(prefix) {
return prefix + '_' + count++;
};
}();
Предполагая, что у вас есть класс во всех меток, почему бы просто не использовать parseInt($('.label-class').last().text()) + 1
? Хотя я согласен с другими плакатами в том, что это, вероятно, не чистое, универсальное решение... возможно, оно достаточно хорошо звучит.
Если вы не получите ответ, который вы ищете, попробуйте добавить более подробные сведения к вопросу. Не понятно, что вы просите.