确定某个对象是否有一个类或另一个类的正确方法是什么? 以下是错误的..
if ($('#menu-item-49').hasClass('current-menu-item' || 'current-menu-parent') ) {
$('ul.sub-menu ').css('display', 'block');
}
谢谢!
答案 0 :(得分:68)
您可以改用is
吗?
if ($('#menu-item-49').is('.current-menu-item, .current-menu-parent')) {
$('ul.sub-menu ').css('display', 'block');
}
检查当前匹配的组 对选择器和返回的元素 如果至少有其中一个元素,则为true 匹配选择器。
Beats必须使用多个hasClass
查询,这是另一种选择:
if ($('#menu-item-49').hasClass('current-menu-item') ||
$('#menu-item-49').hasClass('current-menu-parent')) {
$('ul.sub-menu ').css('display', 'block');
}
答案 1 :(得分:2)
您无法在||
中使用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 :(得分:1)
if ($('#menu-item-49').hasClass('current-menu-item') || $('#menu-item-49').hasClass('current-menu-parent') ) {
$('ul.sub-menu ').css('display', 'block');
}
您是否尝试过以下操作?
答案 3 :(得分:1)
您还可以使用.is()
来检查以current-menu-
开头的任何课程:
if ( $('#menu-item-49').is('[class]^="current-menu-"') ) {
//49 is the current menu!
}
可以找到^=
之类的更多属性选择器{/ 3}}。
答案 4 :(得分:0)
以下是您的想法:
var menuItem49 = $('#menu-item-49');
if (menuItem49.hasClass('current-menu-item') || menuItem49.hasClass('current-menu-parent')) {
// ...
}
答案 5 :(得分:0)
如此接近!
尝试:
if ($('#menu-item-49').hasClass('current-menu-item') || $('#menu-item-49').hasClass('current-menu-parent') ) {
$('ul.sub-menu ').css('display', 'block');
}
答案 6 :(得分:0)
请这样做,将其分成两位:
if ($('#menu-item-49').hasClass('current-menu-item') || $('#menu-item-49').hasClass('current-menu-parent') ){
$('ul.sub-menu ').css('display', 'block');
}
希望这有助于你