2017-04-21 42 views
0

我有我的移动网页的左侧刷卡菜单,这里的菜单HTML如何排除来自jQuery选择特定的div?

<div class="swipe" style="height: 433px; left: 0px;"> 
    <div class="swipe-menu"> 

<div class="nav-container-mobile"> 
    <div class="container"> 
     <div class="row"> 
      <div class="col-xs-12"> 
       <div class="sf-menu-block"> 
        <div id="menu-icon" class="">categories</div> 
        <ul class="sf-menu-phone" style="display: none;"> 
         <li class="level0 nav-1 first level-top parent"><a href="http://example.com/products.html" class="level-top"><span>product</span></a> 
         </li> 
        </ul> 
       </div> 
      </div> 
     </div> 
     <div class="clear"></div> 
    </div> 
</div> 
     <a href="http://example.com/" title="home" class="home-link">home</a> 
     <ul class="links"> 
         <li class="first"><a href="http://example.com/customer/account/" title="account">My account</a></li> 
           <li class=" last"><a href="http://example.com/customer/account/login/" title="login" onclick="return false;">Login</a></li> 
      </ul> 


     <div class="footer-links-menu"> 
      <ul> 
<li><a href="http://example.com/about">test</a></li> 
<li><a href="http://example.com/customer-service">test</a></li> 
<li><a href="http://example.com/template-settings">test</a></li> 
<li class="last privacy"><a href="http://example.com/privacy-policy-cookie-restriction-mode">priva</a></li> 
</ul> 
      <ul class="links-2"> 
    <li class="first"><a href="http://example.com/catalog/seo_sitemap/product/">Product Sitemap</a></li> 
    <li><a href="http://example.com/catalog/seo_sitemap/category/">Category Sitemap</a></li> 

    <li><a href="http://example.com/sales/guest/form/">Order</a></li> 
</ul>  </div> 
    </div> 
</div> 

这个js会在切换滑出来,

function swipe_animate_true(){ 
     jQuery('.swipe-control').addClass('active'); 
     jQuery('.swipe').stop(true).animate({'left':'0'},300); 
    } 
    function swipe_animate_false(){ 
     jQuery('.swipe-control').removeClass('active'); 
     jQuery('.swipe').stop(true).animate({'left':'-237px'},400); 
    } 
    jQuery('.swipe-control').click(function(){ 
     swipe_animate_true(); 
     mini_form_hide(); 
     if(jQuery(this).parents('body').hasClass('ind')){ 
      jQuery(this).parents('body').removeClass('ind'); 
      swipe_animate_false() 
      return false 
     } 
     else{ 
      jQuery(this).parents('body').addClass('ind'); 
      swipe_animate_true() 
      return false 
     } 
    }) 

我要排除.sf-菜单块将被出切换为滑动,我曾试图

jQuery('.swipe:not(.sf-menu-block)').stop(true).animate({'left':'-237px'},400); 

}

但它不工作,任何人都知道如何做到这一点?

enter image description here

------------------更新--------------------
尝试

jQuery(".swipe > :not(.nav-container-mobile)").stop(true).animate({'left':'-237px'},400); 

但这会使左上角的按钮无法滑出菜单。

+0

我有一个形象来解释我要问什么 – hkguile

+0

不清楚你在问什么;你是什​​么意思,“排除”元素 - 排除它?动画?你当然可以没有祖先元素走动,但有后代_not_做同样的事情。如果你想有一个后代元素“留”,而祖先是移动的,那么你就必须申请对后代的反向运动。 //'.swipe:没有(.SF菜单块)'是没有当然的感觉 - 你只需要与类'slide'一个元素,该元素不也有类'SF-菜单block' - !。所以这是一样的,如果你只是用'.swipe' – CBroe

回答

0

HTML:

<div> 
    Sandip 
    <div class="sf-menu-block"> 
     my div 
    </div> 
</div> 

您可以删除与之相匹配的一流的 “SF-菜单块” div标签用JavaScript按照您的要求如下:

var divBlock = document.getElementsByClassName("sf-menu-block")[0]; 
divBlock.outerHTML = ''; 

要Exclue任何元素在JQuery为您的情况:

$("div").not($(".sf-menu-block")) 

如果用$("div").length尝试过给长度,而$("div").not($(".sf-menu-block")).length会给你

在你的语法可能是:

jQuery('.swipe').not(jQuery('.sf-menu-block')).stop(true).animate({'left':'-237px'},400); 
+0

排除=删除 – Jamiec

+0

我有更新的答案jQuery的 –

+0

尝试的jQuery(“刷卡”)exclue元素不是(jQuery的(” SF-菜单 - 。块“))停止(真).animate({ '左': ' - 237px'},400); ,不工作 – hkguile