Уникальное ИМЯ для элементов clone()

#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 Пожалуйста, сформулируйте свой вопрос правильно. Возможно, вы хотели сказать: «При клонировании элемента несколько раз, как бы вы присвоили каждому из них уникальный идентификатор?»