14

それは何をします:

<p class="foo"></p>
$('p').addClass('bar');

出力:

<p class="foo bar"></p>

私が必要なもの:

<p class="bar foo"></p>

では、要素の最初の位置にクラスを追加することは可能ですか?

編集(コンテキスト):現在、最後のクラスに分割機能があります。別のクラスが追加された場合は、2 番目の分割配列にも追加されます。

4

6 に答える 6

15
 (function($) {

    jQuery.fn.extend({
        prependClass: function(newClasses) {
            return this.each(function() {
                var currentClasses = $(this).prop("class");
                $(this).removeClass(currentClasses).addClass(newClasses + " " + currentClasses);
            });
        }
    });

})(jQuery);
于 2014-05-23T22:50:29.080 に答える
7
function prependClass(sel, strClass) {
    var $el = jQuery(sel);

    /* prepend class */
    var classes = $el.attr('class');
    classes = strClass +' ' +classes;
    $el.attr('class', classes);
}
于 2013-01-22T15:21:39.493 に答える
3

className文字列に対する制御が制限されているため、これは決して依存関係にはならないはずですが、これは可能です。

$("p").removeClass('foo').addClass('bar foo');
于 2013-01-22T15:20:38.513 に答える
0

あなたはこれを試すことができます、ライブデモ:

http://jsfiddle.net/oscarj24/eZe4b/

$('p').prop('class', 'bar foo');

addClassそれ以外の場合は、この順序で結果をremoveClass取得するために遊んでみる必要がありますbar foo


一方、私はあなたの質問をまったく受けませんが、最初の要素にbar fooクラスを追加したいだけの場合は、これを行ってください:p

$('p').eq(0).prop('class', 'bar foo');

于 2013-01-22T15:22:02.453 に答える