web-dev-qa-db-ja.com

jQueryは、ulにクラスOR別のクラスがあるかどうかを判断します

オブジェクトに1つのクラスがあるかどうかを判断する正しい方法は何ですかOR別のクラスですか?)以下は明らかに間違っています。

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

ありがとう!

32
nwindham

代わりに is を使用できますか?

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

現在一致している要素のセットをセレクターと照合し、これらの要素の少なくとも1つがセレクターと一致する場合はtrueを返します。

複数のhasClassクエリを使用する必要があるビートは、代替手段です。

if ($('#menu-item-49').hasClass('current-menu-item') || 
    $('#menu-item-49').hasClass('current-menu-parent')) {
  $('ul.sub-menu ').css('display', 'block');
}
68
djdd87

hasClass内で||(または)演算子を使用することはできません。これを試して:

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

または、それが冗長すぎる場合は、これを行うことができます。

var $menuItem = $('#menu-item-49');
if ($menuItem.hasClass('current-menu-item') || 
    $menuItem.hasClass('current-menu-parent')) {
  $('ul.sub-menu ').css('display', 'block');
}

またはさらに良い:

var $menuItem = $('#menu-item-49');
if ($menuItem.is('.current-menu-item, .current-menu-parent')) {
  $('ul.sub-menu ').css('display', 'block');
}
2
Vivin Paliath

.is()を使用して、current-menu-で始まるクラスを確認することもできます。

if ( $('#menu-item-49').is('[class]^="current-menu-"') ) {
    //49 is the current menu!
}

^=のような他の属性セレクターが見つかります here

1
jasongetsdown
if ($('#menu-item-49').hasClass('current-menu-item') || $('#menu-item-49').hasClass('current-menu-parent') ) {
  $('ul.sub-menu ').css('display', 'block');
}

以下を試しましたか?

1
Trefex

以下はあなたが考えていることです:

var menuItem49 = $('#menu-item-49');
if (menuItem49.hasClass('current-menu-item') || menuItem49.hasClass('current-menu-parent')) {
    // ...
}
0
BalusC

とても近い!

試してください:

if ($('#menu-item-49').hasClass('current-menu-item') || $('#menu-item-49').hasClass('current-menu-parent') ) {
  $('ul.sub-menu ').css('display', 'block'); 
}
0
HurnsMobile

代わりに次のようにして、2ビットで分離します。

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

これがあなたを助けることを願っています

0
Marcos Placona