我想根据 li元素中的 a 元素和 li元素中的子菜单类执行某些操作。
如果元素有2个classess current submenu
我想在 $(“。menu”)。mouseenter 事件发生时执行某些操作。如果li元素不具备此功能......
<nav id="id">
<ul>
<li><a href="index.html">index</a></li>
<li><a href="serviceios.html" class="current submenu">Services</a></li>
<li><a href="clients.html" >Clients</a></li>
<li><a href="portfolio.html">Portfolio</a></li>
<li><a href="contact.html" >Contact</a></li>
<ul class="menu">
<li><a href="#" class="documents" data-icon="">1</a></li>
<li><a href="#" class="messages" data-icon="">2</a></li>
<li><a href="#" class="signout" data-icon="">3</a></li>
</ul>
</ul>
</nav>
我有:
$(".menu").mouseenter(
function() {
$(".menu").toggleClass('hover');
$(".submenu").css("-webkit-border-radius", "8px 8px 0 0");
$(".submenu").css("-moz-border-radius", "8px 8px 0 0");
$(".submenu").css("border-radius", "8px 8px 0 0");
if( $('li').hasClass('current submenu') )
/*...*/
else
$(".submenu").toggleClass('current');
}
);
该怎么办?
答案 0 :(得分:3)
这个jQuery对象:
$("li a.current.submenu")
将选择包含这两个类的所有标记,并仅选择那些标记。您可以使用该jQuery对象将任何操作仅限于那些标记。
或者,如果你想迭代所有li a.submenu
个项目,如果当前的类在那里做一件事,如果没有则做另一件事,你可以这样做:
$("li a.submenu").each(function() {
if ($(this).hasClass("current")) {
// do something here when current class is present
} else {
// do something here when current class is not present
}
});
答案 1 :(得分:2)
您将class
设置为a
内的li
元素,因此a
将拥有该类。
使用它。这会在a
内选择submenu current
类li
。
if( $('li a.submenu').hasClass('current') ) {
console.log("Got an li");
/* Do stuff here */
} else {
$(".submenu").toggleClass('current');
}
如果您确定一次只有一个submenu
课程的元素,那么您也可以这样做:
if( $('.submenu').hasClass('current') ) {