检查页面上是否存在元素,如果有则执行一个功能,否则不执行任何操作

时间:2018-07-31 15:07:28

标签: javascript jquery

这里是场景:我有两组导航,主要和次要。主导航将始终存在于页面上,辅助导航将不会始终存在。在包含辅助导航的页面上,我希望主导航仅在将“缀”类附加到辅助导航时(在页面向下滚动到特定位置之后,才在mouseenter和mouseleave上执行某些操作),但这是单独的一段代码)。

我当前拥有的代码如下:

<aside id="aside" [hidden]="!menu">
  <button class="menu-btn" (click)="menu = false" routerLink="/">Strona Główna</button>
  <button (click)="menu = false" routerLink="/cv">CV</button>
  <button (click)="menu = false" routerLink="/bio">BIO</button>
  <button (click)="menu = false" routerLink="/portfolio">Portfolio</button>
  <button (click)="menu = false" routerLink="/kontakt">Kontakt</button>
</aside>
<button id="menu-btn" [class.aside]="menu" (click)="showMenu()">Klik</button>

按原样运行时,无论subnav是否在页面上,导航项始终会触发代码。我可能应该首先检查页面上是否存在.tabbed-sticky-nav,这样,如果页面上没有辅助导航,那么就不用再在悬停时检查任何内容了。但是,如果.tabbed-sticky-nav DOES存在并且添加了“缀”类,则只有这样,我才希望潜在地应用主导航的悬停操作。我该如何进行更改,以便在这些情况下进行干净的检查和执行?

1 个答案:

答案 0 :(得分:2)

jQuery总是返回某些内容,因此检查元素是否存在的方法是使用length property。这将告诉您给定选择器返回了多少个元素。

if (!stickyNav.length){
    ...
}