jQuery确定ul是否有类或另一个

nwi*_*ham 31 jquery if-statement

确定某个对象是否有一个类或另一个类的正确方法是什么?以下是错误的..

if ($('#menu-item-49').hasClass('current-menu-item' || 'current-menu-parent') ) {
  $('ul.sub-menu ').css('display', 'block');
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

djd*_*d87 69

你可以用is吗?

if ($('#menu-item-49').is('.current-menu-item, .current-menu-parent')) {
  $('ul.sub-menu ').css('display', 'block');
}
Run Code Online (Sandbox Code Playgroud)

针对选择器检查当前匹配的元素集,如果这些元素中的至少一个与选择器匹配,则返回true.

节拍必须使用多个hasClass查询,这是替代方案:

if ($('#menu-item-49').hasClass('current-menu-item') || 
    $('#menu-item-49').hasClass('current-menu-parent')) {
  $('ul.sub-menu ').css('display', 'block');
}
Run Code Online (Sandbox Code Playgroud)

  • 性能意识的性能比较:[jsperf is vs hasClass for multiple class](https://jsperf.com/is-vs-hasclass-for-multiple-classes/5) (3认同)
  • +1为更优雅的解决方案 (2认同)

Bal*_*usC 0

以下是您的想法:

var menuItem49 = $('#menu-item-49');
if (menuItem49.hasClass('current-menu-item') || menuItem49.hasClass('current-menu-parent')) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)