Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 从其他同级中删除类_Jquery_Css_List_Selectors Api - Fatal编程技术网

Jquery 从其他同级中删除类

Jquery 从其他同级中删除类,jquery,css,list,selectors-api,Jquery,Css,List,Selectors Api,我有一个这样的结构 <ul> <li class="open active"> <a></a> <ul class="submenu nav-show" style="display:block"></ul> </li> <li class=""> <a></a> <ul></ul> </li>

我有一个这样的结构

<ul>
  <li class="open active">
    <a></a>
    <ul class="submenu nav-show" style="display:block"></ul>
  </li>
  <li class="">
    <a></a>
    <ul></ul>
 </li>
</ul>
但它不起作用 也试过

var open = document.querySelectorAll(".open");
$(open).closest("li").addClass('active').siblings().removeClass('active');
$(open).not(":has(.active)").collapse('hide');
但没有给出适当的输出
plz help me

最近的
函数将获取元素的最近父元素。在您的情况下,
open
将与您想要启用的
.active
元素相同

尝试更改
var a=$(打开)。将(“li”)更改为
var a=$(打开)
,看看这是否有帮助

$($p).closest('li').addClass('active').siblings().removeClass('active').end()
.parent().children().filter(function(){return $(this).find('.nav-show ').length>0}).addClass('.nav-hide').hide();

试试这个

试试这个编码

$("li > a").click(function() {
        var $div1 = $(this).next();
        $(".submenu").not($div1).hide();
        $div1.show();
        var $div2=$(this).parent();
        $("li").not($div2).removeClass('active');
        $div2.addClass('active');
});
试试这个:

$(document).ready(function(){
    $("li").click(function(){
        $(this).siblings("li.active").find("ul.nav-show:eq(1)").removeClass("nav-show").addClass("nav-hide");
        $(this).siblings("li.active").removeClass("active");
        $(this).addClass("active");
        $(this).find("ul").removeClass("nav-hide").addClass("nav-show");
    });
});
你可以试试

$('.open').addClass('active').find('ul').removeClass('nav-hide').addClass('nav-show').end().siblings('.active').removeClass('active').find('ul').addClass('nav-hide').removeClass('nav-show');

同样可以写成

var $li = $('.open').addClass('active');
$li.find('ul').removeClass('nav-hide').addClass('nav-show');
$li.siblings('.active').removeClass('active').find('ul').addClass('nav-hide').removeClass('nav-show');

仍然与前一个一样..没有效果请在单击处理程序时共享您,以便我们可以看到您实际试图记录的内容-您是否提供了小提琴???@gurupasadrao我完全想要侧菜单..单击子项其他将关闭HNx其部分工作它隐藏第一个lis ul,但也隐藏第二个lisul@BDhara请重新测试。当我只要李hide@BDhara请重新测试。
                    • 哦,是的!!是的,但你无法想象它!!您可能需要添加一些子菜单来完美地显示它!!或者我只是在DOM中注意到了@古鲁帕萨德罗更新了小提琴。。那……怎么样@BDhara你现在可以看到小提琴了,也许这次你看到了画面???
                              我有两次导航显示..我想要第二次导航显示隐藏它隐藏整个父级ul而不是li
                              $('.open').addClass('active').find('ul').removeClass('nav-hide').addClass('nav-show').end().siblings('.active').removeClass('active').find('ul').addClass('nav-hide').removeClass('nav-show');
                              
                              var $li = $('.open').addClass('active');
                              $li.find('ul').removeClass('nav-hide').addClass('nav-show');
                              $li.siblings('.active').removeClass('active').find('ul').addClass('nav-hide').removeClass('nav-show');