1

私はワードプレスを使用していて、製品カテゴリに基づいてメニューを表示する必要がありますが、それは期間ごとに異なり、クラスを追加する方法がありません。だから私はクラスとしてterm-maincat-subcatを持っていて、サブキャットはあなたのどこにいるかによって変わりますが、メインキャットはブランドと同じままです。私はjQueryワイルドカードを調べていましたが、クラス内の特定の文字列を持つ要素を選択する方法があります。条件を実行して、クラスにその文字列があるかどうかを確認するにはどうすればよいですか。これが私が持っているものです...

if($('body').is('body[class~="brand"]')) {
   $('.brand-cat-nav').show();
}

上記はうまくいかないようです。残念ながら、.hasClass()を使用するだけで、これを少し簡単にするために、単純な「ブランド」クラスを追加する方法はありません。助言がありますか?

PS:本体に出力するクラスは、「term-maincat-subcat」のようなものです。

4

2 に答える 2

3

クラスは本当に簡単にチェックできます。

if ($('body').is('.brand')) { ... }

また:

if ($('body').hasClass('brand')) { ... }

編集—文字列がクラスの一部であるかどうかを確認したい場合は、「className」プロパティに移動して正規表現で確認する必要があります。

if (/brand/.test($('body').prop('className'))) { ... }

必ずしも「ブランド」ではない場合は、文字列から正規表現を作成できます。

function whatever( someClassFragment ) {
  if (new RegExp(someClassFragment).test($('body').prop('className')) { ... }

文字列に英字以外の文字が含まれている可能性がある場合は、それに対処する必要があります。

于 2012-06-21T15:56:34.307 に答える
1

あなたはこれを試すことができます:

if( $('body').filter("[class^='brand']").length )​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ {
    // body has class starting with 'brand'
}

bodyこれは、「brand」で始まるクラス名でをフィルタリングします。

'brand'を含むbodyクラスがあるかどうかをテストする場合は、代わりにフィルターとして使用します。class*="brand"

于 2012-06-21T16:04:46.693 に答える