たとえば、「test」クラスのボディがあり、そのクラスを取得して別の div に追加したい場合、jQuery でこれを行うにはどうすればよいですか?
ありがとう
編集:このようなものですか?
$("body.test").clone().attr("class").prependTo("div");
同じ問題の解決策を探しているときに、あなたの質問に出くわしました。提案されたソリューションは機能しますが、クラス名を知っておく必要があります。
クラス名を知らずにそれを行う別の方法を次に示します。あなたが考えたように、それは使用します.attr()
$("#MyTargetElementId").attr("class", $("body.ToCopy").attr("class"));
ただし、複数のセレクターを使用することは実際には機能していませんが、これは理にかなっています:)
既存のクラスを削除せずに、別の要素からクラスを追加するだけの場合は、これを使用する必要があります。
$('.i_want_your_classes').addClass( $('.have_my_classes').attr("class") );
以下のリンクは、class または id 属性を要素から別の要素にコピーするのに役立つ場合があります。それを行う方法の実例も含まれています。
http://html-tuts.com/copy-class-id-to-another-html-element-with-jquery/
以下にいくつかの短い例を示します。
すべてのクラスを要素から別の要素にコピーする
$('.differentClass').addClass( $('.anotherClass').attr('class') );
要素に複数のクラスがある場合は、それらを配列で取得し、2 番目のクラス (または他のクラス) のみをコピーします。
var getClasses = $('.someClass').attr('class');
var splitClasses = getClasses.split(' ');
$('.differentClass').addClass( splitClasses[1] );
これにより、以下の配列が得られ、配列の位置を指定することで値を出力できます。
splitClasses[0] => 'firstClass'
splitClasses[1] => 'secondClass'
splitClasses[2] => 'thirdClass'
要素から別の要素への ID のコピー
$('.someClass').attr( 'id', $('#someId').attr('id') );
$('element').hasClass("test", function() {
$('element2').addClass("test");
} );
そうすべきです - 構文的にはテストされていませんが、大まかに言えば私がすることです。