Уникальное имя для клонирования () элементов - PullRequest
0 голосов
/ 20 апреля 2011

Как дать уникальное ИМЯ или другой ATTR элементу, который клонируется?

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 28 сентября 2011

Используйте 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);
});
0 голосов
/ 20 апреля 2011

Хакерский способ сделать это - использовать глобальный счетчик и увеличивать его на единицу до добавления значения к имени клонированного элемента.

ex.

var count =1;
func some_func() {
     var cloneElement = $(form).clone();
     cloneElement.attr('name', cloneElement.attr('name') + count++);
}
0 голосов
/ 20 апреля 2011
$('.some_element').clone().attr('id','some_unique_id');
...