オブジェクトに1つのクラスがあるかどうかを判断する正しい方法は何ですかOR別のクラスですか?)以下は明らかに間違っています。
if ($('#menu-item-49').hasClass('current-menu-item' || 'current-menu-parent') ) {
$('ul.sub-menu ').css('display', 'block');
}
ありがとう!
代わりに 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');
}
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');
}
.is()
を使用して、current-menu-
で始まるクラスを確認することもできます。
if ( $('#menu-item-49').is('[class]^="current-menu-"') ) {
//49 is the current menu!
}
^=
のような他の属性セレクターが見つかります here 。
if ($('#menu-item-49').hasClass('current-menu-item') || $('#menu-item-49').hasClass('current-menu-parent') ) {
$('ul.sub-menu ').css('display', 'block');
}
以下を試しましたか?
以下はあなたが考えていることです:
var menuItem49 = $('#menu-item-49');
if (menuItem49.hasClass('current-menu-item') || menuItem49.hasClass('current-menu-parent')) {
// ...
}
とても近い!
試してください:
if ($('#menu-item-49').hasClass('current-menu-item') || $('#menu-item-49').hasClass('current-menu-parent') ) {
$('ul.sub-menu ').css('display', 'block');
}
代わりに次のようにして、2ビットで分離します。
if ($('#menu-item-49').hasClass('current-menu-item') || $('#menu-item-49').hasClass('current-menu-parent') ){
$('ul.sub-menu ').css('display', 'block');
}
これがあなたを助けることを願っています