JQuery добавление класса к клонированному элементу - PullRequest
7 голосов
/ 04 января 2012

Это мой скрипт:

$('.addprop').click(function() {
        $('#clone').clone().insertAfter('.addprop');
    })

Мне нужно добавить класс в новый элемент, который создается.Возможно ли это?

Ответы [ 2 ]

18 голосов
/ 04 января 2012

Да, это:

$('.addprop').click(function() {
        $('#clone').clone().addClass('newClass').insertAfter('.addprop');
    })

Несмотря на то, что вы клонируете элемент на основе его id, $('#clone'), обратите внимание, что будет два элемента, совместно использующих одинаковых id, что результат неверный HTML, поэтому я бы предложил:

$('.addprop').click(function() {
        $('#clone').clone().attr('id',id += 1).addClass('newClass').insertAfter('.addprop');
    });

Это эффективно добавит число 1 к концу конца текущего значения id. Чтобы сделать это более динамичным, вам, вероятно, нужно основать его на подсчете количества элементов нового имени класса:

$('.addprop').click(function() {
        $('#clone').clone().attr('id',id += $('.newClass').length).addClass('newClass').insertAfter('.addprop');
    });
1 голос
/ 04 января 2012

Конечно.

После метода .clone() элемент current является клоном.

$('#clone').clone().addClass('class-name-here').insertAfter('.addprop');

Notice

вам нужно будет изменить id клона, поскольку он должен быть уникальным в DOM, и когда вы клонируете этот элемент, идентификатор также будет клонирован ..

Так лучшесделать что-то вроде

$('#clone').clone().attr('id','newid').addClass('class-name-here').insertAfter('.addprop');
...