jQuery 确定 ul 是否有类或另一个类
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/3196613/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
jQuery determine if ul has class OR another one
提问by nwindham
what is the right way to determine if an object has one class OR another one? The following is appearantly wrong..
确定一个对象是有一个类还是另一个类的正确方法是什么?以下似乎是错误的..
if ($('#menu-item-49').hasClass('current-menu-item' || 'current-menu-parent') ) {
$('ul.sub-menu ').css('display', 'block');
}
Thanks!
谢谢!
回答by djdd87
You could use is
instead?
你可以用is
吗?
if ($('#menu-item-49').is('.current-menu-item, .current-menu-parent')) {
$('ul.sub-menu ').css('display', 'block');
}
Check the current matched set of elements against a selector and return true if at least one of these elements matches the selector.
根据选择器检查当前匹配的一组元素,如果这些元素中至少有一个与选择器匹配,则返回 true。
Beats having to use multiple hasClass
queries, which is the alternative:
Beats 不得不使用多个hasClass
查询,这是替代方案:
if ($('#menu-item-49').hasClass('current-menu-item') ||
$('#menu-item-49').hasClass('current-menu-parent')) {
$('ul.sub-menu ').css('display', 'block');
}
回答by Vivin Paliath
You cannot use the ||
(or) operator within hasClass
. Try this:
您不能在 中使用||
(or) 运算符hasClass
。尝试这个:
if ($('#menu-item-49').hasClass('current-menu-item') ||
$('#menu-item-49').hasClass('current-menu-parent')) {
$('ul.sub-menu ').css('display', 'block');
}
Or you can do this if that's too verbose:
或者,如果这太冗长,您可以这样做:
var $menuItem = $('#menu-item-49');
if ($menuItem.hasClass('current-menu-item') ||
$menuItem.hasClass('current-menu-parent')) {
$('ul.sub-menu ').css('display', 'block');
}
Or even better:
或者甚至更好:
var $menuItem = $('#menu-item-49');
if ($menuItem.is('.current-menu-item, .current-menu-parent')) {
$('ul.sub-menu ').css('display', 'block');
}
回答by Trefex
if ($('#menu-item-49').hasClass('current-menu-item') || $('#menu-item-49').hasClass('current-menu-parent') ) {
$('ul.sub-menu ').css('display', 'block');
}
Have you tried the following?
您是否尝试过以下方法?
回答by jasongetsdown
回答by Marcos Placona
Do it like this instead, separating it in two bits:
改为这样做,将其分成两部分:
if ($('#menu-item-49').hasClass('current-menu-item') || $('#menu-item-49').hasClass('current-menu-parent') ){
$('ul.sub-menu ').css('display', 'block');
}
Hope this helps you
希望这对你有帮助
回答by BalusC
The following is what you've in mind:
以下是您的想法:
var menuItem49 = $('#menu-item-49');
if (menuItem49.hasClass('current-menu-item') || menuItem49.hasClass('current-menu-parent')) {
// ...
}
回答by HurnsMobile
So close!
很近!
Try:
尝试:
if ($('#menu-item-49').hasClass('current-menu-item') || $('#menu-item-49').hasClass('current-menu-parent') ) {
$('ul.sub-menu ').css('display', 'block');
}