javascript - if 语句逻辑未产生期望的结果

标签 javascript jquery html if-statement

我有一个名为“服务”的页面。当您从导航菜单转到该页面时,我不希望显示任何服务(太复杂,无法解释)。然后在我的索引页面上有每种类型服务的链接。如果您单击链接,它将带您进入服务页面并仅显示该服务。

对于各个服务链接,它们如下所示:

<a href="serviceCheck2#service1">Service 1</a>
<a href="serviceCheck2#service2">Service 2</a>
<a href="serviceCheck2#service3">Service 3</a>

这个系统的这个方面是有效的。它会将我带到服务页面,并且仅显示我从链接中单击的服务。

不起作用的部分是不显示服务或导航菜单中的service-display-box。现在所有服务都会显示,service-display-box 也会显示。

我尝试创建逻辑来防止这种情况发生,但它不起作用。在下面的 javascript 中,您将看到类似 //added 的注释,这是我添加的内容,用于尝试创建显示 service-display-box 和特定服务的逻辑如果浏览器中存在哈希值,则项目,否则根本不会显示 service-display-box

我的逻辑有什么问题吗?

$(function(){

    //get the section name from hash
    var sectionName = window.location.hash.slice(1);

    if (sectionName != null) { //added
    //then show the section
     $('#service-display-box').show();
     $(window.location.hash).show().scroll().siblings().hide();
    } else { //added
        $('#service-display-box').hide(); //added
    } //added
})

#service-display-box {
    display: none;
}
<div id="service-display-box">
      <div id="service-display-box-container">
        <div class="service-item-box" id="service1">
          <div class="service-item-title">1</div>
          <h2 class="service-item-description"> Service</div>
        </h2>
        <h2 class="service-item-box" id="service2">
          <div class="service-item-title">2</div>
          <div class="service-item-description"> Service</div>
        </h2>
        <h2 class="service-item-box" id="service3">
          <div class="service-item-title">3</div>
          <div class="service-item-description"> Service</div>
        </h2>
        <h2 class="service-item-box" id="service4">
          <div class="service-item-title">4</div>
          <div class="service-item-description"> Service</div>
        </h2>
        <h2 class="service-item-box" id="service5">
          <div class="service-item-title">5</div>
          <div class="service-item-description"> Service/div>
        </h2>
        <h2 class="service-item-box" id="service6">
          <div class="service-item-title">6</div>
          <div class="service-item-description"> Service</div>
        </h2>
        <div style="clear:both;"></div>
        <div id="service-top"><span id="service-top-border">Back to all services</span></div>
      </div>
    </div>

我也尝试过

if (sectionName > 1) {

最佳答案

window.location.hash.slice(1) 返回一个空字符串,它与 null 不同。我认为您想检查 .length == 0

关于javascript - if 语句逻辑未产生期望的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37350820/

相关文章:

javascript - JS 将数组作为参数传递给递归函数

javascript - 使用 JavaScript 更改背景

javascript - Twitter Bootstrap JavaScript 仅用于特定分辨率

html - 需要让Search Image到搜索框的右端

html - 如何在电子邮件客户端中动态调整图像大小?

html - 格式化链接,使它们出现在 CSS 图像的顶部

javascript - 如何使动态和静态内容居中?

javascript - 如何正确应用 .mdb-select 样式?

jquery - 根据内容将 CSS 样式应用于 span 标签

javascript - 如何从 ReactJS 中的浏览器获取 URL 地址(服务器 URL)