2011-11-07 24 views
1

jQuery 1.4 removeClass();は引数として関数を使用するようになりました。removeClass()コールバック関数の使用方法は?

マイ<body>タグは、例えば、それに追加いくつかのクラスがあります。

<body class="heading-helvetica para-georgia pattern-flowers"> 

私はクラス名を置き換えることができることを望む、と私は「removeClass()内の関数が私を助けることができますが、私はドンと信じて私は本当にthe documentation on the jQuery siteを理解していないし、私は正規表現といいです。

たとえば、heading-helveticaheading-myriadまたはpara-georgiaと置き換えてpara-timesなどと置き換えることはできますか?

私は以前にそれを置き換えるためにしようとしているクラス名は、クラス名のリストで最初のものである場合にのみ動作し、このような何か、使用していた

:あなたはそれらすべてを処理したい場合は、あなたを

$('#headings li').click(function(){ 
    var this_class = $(this).attr('id'); 
    $('body[class|="heading"]').removeClass(); 
    $('body').addClass(this_class); 
}); 
+0

'$( 'something')。removeClass( 'heading-helvetica')。addClass( 'heading-myriad');'。これはあなたのために動作しないいくつかの理由はありますか? – rossipedia

答えて

2

bodyタグからクラスのリストを取得し、それらを反復/解析する必要があります。

クラスを取得する方法については、この記事を参照してください。

Get class list for element with jQuery

追加するクラスのリストおよび削除するクラスのリストを把握する必要があります。 removeClassメソッドのパラメータとして関数を使用することは、実際には必要ありません。クラスを追加する必要もあるので、おそらく間違った方法です。

+0

Pefect。私はこれのいくつかのバリエーションを作り、うまく働いています。ありがとう! –

0

を代わりに.attr()を使用できます。例:あなたはremoveClass()addClass()としたほうが良いかもしれやっていることに応じて、しかしかなり幅広いだ

var prev = $("body").attr('class'); $("body").attr('class', prev.replace('helvetica', 'myriad'));

関連する問題