それは何をします:
<p class="foo"></p>
$('p').addClass('bar');
出力:
<p class="foo bar"></p>
私が必要なもの:
<p class="bar foo"></p>
では、要素の最初の位置にクラスを追加することは可能ですか?
編集(コンテキスト):現在、最後のクラスに分割機能があります。別のクラスが追加された場合は、2 番目の分割配列にも追加されます。
それは何をします:
<p class="foo"></p>
$('p').addClass('bar');
出力:
<p class="foo bar"></p>
私が必要なもの:
<p class="bar foo"></p>
では、要素の最初の位置にクラスを追加することは可能ですか?
編集(コンテキスト):現在、最後のクラスに分割機能があります。別のクラスが追加された場合は、2 番目の分割配列にも追加されます。
(function($) {
jQuery.fn.extend({
prependClass: function(newClasses) {
return this.each(function() {
var currentClasses = $(this).prop("class");
$(this).removeClass(currentClasses).addClass(newClasses + " " + currentClasses);
});
}
});
})(jQuery);
function prependClass(sel, strClass) {
var $el = jQuery(sel);
/* prepend class */
var classes = $el.attr('class');
classes = strClass +' ' +classes;
$el.attr('class', classes);
}
className
文字列に対する制御が制限されているため、これは決して依存関係にはならないはずですが、これは可能です。
$("p").removeClass('foo').addClass('bar foo');
あなたはこれを試すことができます、ライブデモ:
http://jsfiddle.net/oscarj24/eZe4b/
$('p').prop('class', 'bar foo');
addClass
それ以外の場合は、この順序で結果をremoveClass
取得するために遊んでみる必要がありますbar foo
。
一方、私はあなたの質問をまったく受けませんが、最初の要素にbar foo
クラスを追加したいだけの場合は、これを行ってください:p
$('p').eq(0).prop('class', 'bar foo');