Копировать класс из одного элемента в другой - PullRequest
14 голосов
/ 20 июля 2009

Скажем, например, у меня есть тело с классом "test", и я хочу взять этот класс и добавить его в другой div, как я могу сделать это с jQuery?

Спасибо

Редактировать: Как-то так?

 $("body.test").clone().attr("class").prependTo("div");

Ответы [ 4 ]

43 голосов
/ 10 декабря 2010

Я наткнулся на ваш вопрос, когда искал решение той же проблемы. Хотя предлагаемое решение работает, вы должны знать имя класса.

вот еще один способ сделать это, не зная имен классов. Как вы думали, он использует .attr()

 $("#MyTargetElementId").attr("class", $("body.ToCopy").attr("class"));

Использование нескольких селекторов на самом деле не работает, что имеет смысл:)

4 голосов
/ 24 ноября 2016

Это следует использовать, если вы просто хотите добавить классы из другого элемента, не удаляя существующие классы:

$('.i_want_your_classes').addClass( $('.have_my_classes').attr("class") );
0 голосов
/ 20 апреля 2015

Ссылка ниже может помочь вам скопировать атрибуты class или id из одного элемента в другой. Он также содержит примеры того, как это сделать.

http://html -tuts.com / копия класса-идентификатор к другому-HTML-элемент-с JQuery /


Вот несколько коротких примеров:

Копировать все классы из элемента в другой

$('.differentClass').addClass( $('.anotherClass').attr('class') );

Если элемент имеет несколько классов, получить их в массив и скопировать только второй класс (или любой другой класс):

var getClasses = $('.someClass').attr('class');
var splitClasses = getClasses.split(' ');

$('.differentClass').addClass( splitClasses[1] );

Это приведет к массиву ниже, и вы можете вывести значения, указав позицию массива:

splitClasses[0] => 'firstClass'
splitClasses[1] => 'secondClass'
splitClasses[2] => 'thirdClass'

Копирование идентификатора из Elemenet в другой

$('.someClass').attr( 'id', $('#someId').attr('id') );
0 голосов
/ 20 июля 2009
$('element').hasClass("test", function() {
 $('element2').addClass("test");
} );

должен это сделать - синтаксически не проверено, но это примерно то, что я бы сделал.

...