1

我正在使用 wordpress,我必须显示一个基于产品类别的菜单,但它是按术语进行的,我无法添加一个类。因此,我将 term-maincat-subcat 作为类,并且 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这使用以“品牌”开头的类名过滤。

如果您想测试是否body有一个包含“品牌”的类,请改为使用class*="brand"过滤器。

于 2012-06-21T16:04:46.693 回答