#javascript #jquery #clone
#javascript #jquery #клонировать
Вопрос:
Как мне присвоить уникальное ИМЯ или другой атрибут клонируемому элементу?
Заранее благодарю вас.
Комментарии:
1. Не могли бы вы объяснить себя немного лучше?
Ответ №1:
Используйте Math.random:
$('.some_element').each(function() {
var id = (Math.floor(Math.random()*10000000000000000));
$(this).clone().attr('id', id);
});
Или, если вам нужен «дескриптор» для исходного элемента, вы могли бы создать новый идентификатор в этом формате:
ORIGINAL_ELEMENT_ID SEPARATOR RANDOM_NUMBER
Например.,
$('.some_element').each(function() {
var id = [
this.id,
(Math.floor(Math.random()*10000000000000000))
].join('-');
$(this).clone().attr('id', id);
});
Комментарии:
1. Можно также использовать временную метку в качестве псевдослучайного числа: setAttribute(‘id’, ‘item_’ new Date().getTime());
Ответ №2:
Простой способ сделать это — использовать глобальный счетчик и постоянно увеличивать его на единицу, прежде чем добавлять значение к имени клонированного элемента.
пример.
var count =1;
func some_func() {
var cloneElement = $(form).clone();
cloneElement.attr('name', cloneElement.attr('name') count );
}
Ответ №3:
$('.some_element').clone().attr('id','some_unique_id');
Комментарии:
1. @KennethB: Итак, в следующий раз, когда вы будете его клонировать, дайте ему другой идентификатор.
2. @KennethB Пожалуйста, сформулируйте свой вопрос правильно. Возможно, вы хотели сказать: «При клонировании элемента несколько раз, как бы вы присвоили каждому из них уникальный идентификатор?»