我正在使用wordpress,我必须根据产品类别显示一个菜单,但它是按术语进行的,我无法添加课程。所以我将term-maincat-subcat作为类,并且subcat会根据你的位置而变化,但是主要的cat与品牌保持一致。我正在研究jQuery通配符,并且有一种方法可以在类中选择具有特定字符串的元素。我如何运行条件来检查它是否在类中有该字符串。这就是我所拥有的......
if($('body').is('body[class~="brand"]')) {
$('.brand-cat-nav').show();
}
以上似乎不起作用,就像我说的那样,遗憾的是,没有办法直接添加一个“品牌”类,以便能够使用.hasClass()更容易。有什么建议吗?
PS:它输出到正文的类是喜欢“term-maincat-subcat”的东西。答案 0 :(得分:3)
班级很容易检查:
if ($('body').is('.brand')) { ... }
或:
if ($('body').hasClass('brand')) { ... }
编辑 - 如果您想要查明某个字符串是否是某个类的 part ,那么这将要求您转到“className”属性并使用正则表达式进行检查:
if (/brand/.test($('body').prop('className'))) { ... }
如果它不总是“品牌”,那么你可以用字符串制作正则表达式:
function whatever( someClassFragment ) {
if (new RegExp(someClassFragment).test($('body').prop('className')) { ... }
如果字符串中可能包含非字母字符,那么您必须处理该字符串。
答案 1 :(得分:1)
你可以试试这个:
if( $('body').filter("[class^='brand']").length ) {
// body has class starting with 'brand'
}
这会使用以“品牌”开头的类名过滤body
。
如果您想测试body
是否包含包含'品牌'的类,请使用class*="brand"
作为过滤器。