javascript - 如何在if语句中隐藏元素?

标签 javascript html css if-statement

我正在对 CMS 进行 html 更改,更改生效后将影响所有页面。我希望此 html 警报仅影响 1 个特定页面。我正在尝试为页面标题执行 if 语句。

逻辑是,如果页面标题是测试文章二,则显示我已放置的html,如果不是,则显示display=none。有了这个逻辑,我就可以在所有页面上查看 html,而不仅仅是我想要显示的页面。

<div class="container">
        <div class="title-wrapper">
            <a href="~/@countryText.ToLower()" title="@countryFullText" alt="@countryText"><span id="article-banner-country">@countryFullText</span></a> /
            <a href="@parentUrl" title="@subCatText" alt="@subCatText"><span id="article-banner-category">@subCatText</span></a>
            <div id="article-banner-title">@pageTitle</div>
        <!--page alert -->

          <div class="feedback-container content-desktop" id="alert-dialog">
    <div class="feedback-left">
      <p>Have any feedback? Reach out to us!</p>
        </div>
        <div class="feedback-right">
        <button class="feedback-button">Give Feedback</button>
        <button class="feedback-button">Dismiss</button>
    </div>
        </div>
    </div>
</div>

<script>

function showAlert() { 
     if(@pageTitle === "Test Article Two") {
    document.getElementById('alert-dialog').style.display = 'block'; 
}else {
    document.getElementById('alert-dialog').style.display = 'none'; 
}

}
</script>

最佳答案

我建议更改 body 元素上的类,以便您可以使用 CSS 进行样式设置。

  1. HTML:这里没有真正改变
<body>
    <div class="container">
        <div class="title-wrapper">
            <a href="~/@countryText.ToLower()" title="@countryFullText" alt="@countryText"><span id="article-banner-country">@countryFullText</span></a> /
            <a href="@parentUrl" title="@subCatText" alt="@subCatText"><span id="article-banner-category">@subCatText</span></a>
            <div id="article-banner-title">@pageTitle</div>
                <div class="feedback-container content-desktop" id="alert-dialog">
                    <div class="feedback-left">
                        <p>Have any feedback? Reach out to us!</p>
                    </div>
                    <div class="feedback-right">
                        <button class="feedback-button">Give Feedback</button>
                        <button class="feedback-button">Dismiss</button>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
  • javascript:只需检查 document.title 并将类添加到 body 元素
  • <script>
        if(document.title === "Test Article Two") {
            document.body.classList.add("show-alert");
        }
    </script>
    
  • 使用 CSS 进行样式设置。始终隐藏#alert-dialog,并且仅当我们将类添加到正文时才显示它。
  • <style>
        #alert-dialog {
            display: none;
        }
        .show-alert #alert-dialog {
            display: block;
        }
    </style>
    

    关于javascript - 如何在if语句中隐藏元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60873892/

    相关文章:

    javascript - 如何获取从240个字符到最后一个字符的所有字符?

    javascript - 媒体查询div背景图片变化怪异

    javascript - 为什么这段代码不隐藏复选框?

    html - 不同国家的 jquery cookies 链接

    javascript - 忽略元素 html 的验证 - Jquery 验证

    javascript - 如果放在 PHP 之前,jQuery 按钮将不起作用

    javascript - 如何检测IE6,并显示警报?

    javascript - 通过设置 width=0 隐藏容器,但有时容器内的一些元素在容器隐藏后会短暂地保持可见

    javascript - CSS 定位表格和 block

    javascript - 超链接在 jQuery 选项卡中不起作用