Javascript 如何从其他父li中删除添加的类?

Javascript 如何从其他父li中删除添加的类?,javascript,jquery,html,Javascript,Jquery,Html,问题: 我需要删除其他主菜单列表项上的(setHover)类,当前处于悬停状态的类除外 干杯 我想你想要这个: $(document).ready(function () { $("#nav li ul li a").hover(function () { // on hover submenu list item $('#nav li').addClass('setHover') //Add class on main menu l

问题: 我需要删除其他主菜单列表项
  • 上的(setHover)类,当前处于悬停状态的类除外

    干杯

    我想你想要这个:

    $(document).ready(function () {
    
    $("#nav li ul li a").hover(function () { // on hover submenu list item                          
        $('#nav li').addClass('setHover') //Add class on main menu list item 
    },(function(){
             $("#nav li").removeClass('setHover').fadeIn(1000); //Remove class from main menu list item 
       }));
    });
    
    我想你想要这个:

    $(document).ready(function () {
    
    $("#nav li ul li a").hover(function () { // on hover submenu list item                          
        $('#nav li').addClass('setHover') //Add class on main menu list item 
    },(function(){
             $("#nav li").removeClass('setHover').fadeIn(1000); //Remove class from main menu list item 
       }));
    });
    

    下面这些应该可以做到

    $("#nav li").not(this.parent()).removeClass('setHover').fadeIn(1000);
    

    演示时,应使用以下方法:

    $("#nav li").not(this.parent()).removeClass('setHover').fadeIn(1000);
    

    演示

    好吧,我可能不理解你的问题,但以下是我尝试使用的:

    $(document).ready(function () {
        $("#nav li ul li a").hover(function () { // on hover submenu list item
            $(this).closest('#nav > li').addClass('setHover').siblings().removeClass('setHover'); //Add class on main menu list item 
        },(function(){
            $(this).closest("#nav > li").removeClass('setHover').fadeIn(1000); //Remove class from main menu list item 
        }));
    });
    
    您使用$(“#nav li”)设置类,但这将向所有#nav li添加一个类


    查看这个JSFIDLE实时示例:

    好吧,我可能不理解您的问题,但以下是我将尝试使用的:

    $(document).ready(function () {
        $("#nav li ul li a").hover(function () { // on hover submenu list item
            $(this).closest('#nav > li').addClass('setHover').siblings().removeClass('setHover'); //Add class on main menu list item 
        },(function(){
            $(this).closest("#nav > li").removeClass('setHover').fadeIn(1000); //Remove class from main menu list item 
        }));
    });
    
    您使用$(“#nav li”)设置类,但这将向所有#nav li添加一个类


    查看这个JSFIDLE实时示例:

    这样做怎么样:

    $("#nav li ul li").hover(function() { // on hover submenu list item   
        $(this).addClass('setHover');
    }, (function() {
        $("#nav li ul li").removeClass('setHover');
    }));
    
    如果我错误地低估了,我深表歉意,但这似乎是jQuery的过度使用,因为您可以通过一些CSS获得一些东西


    小提琴:

    这样做怎么样:

    $("#nav li ul li").hover(function() { // on hover submenu list item   
        $(this).addClass('setHover');
    }, (function() {
        $("#nav li ul li").removeClass('setHover');
    }));
    
    如果我错误地低估了,我深表歉意,但这似乎是jQuery的过度使用,因为您可以通过一些CSS获得一些东西


    小提琴:

    这会达到你的目的

    #nav li a {
      /*styles...*/
    }
    #nav li a:hover
    {
        background: url(http://placekitten.com/g/200/200) no-repeat center center;
    }
    
    显然,您不需要悬停功能,您只需要第一部分“mouseover”,而不是“mouseleave”。
    我以前做这种事情只是为了支持IE6,但现在你应该只使用CSS。

    这会达到你的目的

    #nav li a {
      /*styles...*/
    }
    #nav li a:hover
    {
        background: url(http://placekitten.com/g/200/200) no-repeat center center;
    }
    
    显然,您不需要悬停功能,您只需要第一部分“mouseover”,而不是“mouseleave”。
    我过去使用这种方式只是为了支持IE6,但现在你应该只使用CSS。

    +1来抵消非建设性的批评。如果你否决了某人,特别是一个noob,你至少应该说一下原因。+1以抵消非建设性的批评。如果你否决了某个人,特别是一个noob,你至少应该说一下原因。非常感谢大家。我在hover上使用了CSS和一些JS的组合。非常感谢大家。我在hover上使用了CSS和一些JS的组合。