首页 > 解决方案 > document.getElementById("").style.display='none'; 不管用

问题描述

我试图在用户登录时隐藏此登录/注册导航元素,但它不起作用。

<nav id="nav">
    <ul>
        <li><a href="index.html">Home</a>
            <ul>
                <li><a href="#banner" class="scrolly">Who are we</a></li>
                <li><a href="#main" class="scrolly">Our Events</a></li>
                <li><a href="#features" class="scrolly">Our Story</a></li>
                <li><a href="#footer" class="scrolly">Contact Us</a></li>
            </ul>
        </li>
        <li><a>Events</a>
            <ul>
                <li><a href="CurrentEvents.html" class="scrolly">Current Events</a></li>
                <li><a href="#main" class="scrolly" id = "myevents">My Events</a></li>
            </ul>
        </li>
        <li><a>Account</a>
            <ul>
                <li id = "Login/Register"><a href="LoginRegister.html" class="scrolly">Login/Register</a></li> 
                <li><a href="LoginRegister.html" class="scrolly" id = "userLoggedIn ">Abdalla</a></li>
                <li><a href="#footer" class="scrolly">Settings</a></li>
                <li id = "logout" onclick="logout()">Log out</li>
            </ul>
        </li>                       
    </ul>
</nav>

JS:

firebase.auth().onAuthStateChanged(function(user) {

    if (user) {
      document.getElementById("Login/Register").style.display='none';
    } else {
      document.getElementById("logout").style.display="none";
    }
  }
);

该函数被正确调用,我对其进行了测试,并尝试隐藏其他随机元素,例如标题并且它有效。它根本不适用于这些导航元素。我尝试了其他方法,我也尝试了 jQuery,我尝试删除整个元素,但没有任何反应。它没有返回 NULL,它没有给我一个错误,但它根本行不通。难道我做错了什么?另外,这是用户登录时做事的正确方法吗?只是为了隐藏某些元素?还是有更好的方法来做到这一点。我是网络开发新手,我不确定这是否是最佳方式,所以我愿意接受建议。

标签: javascripthtmlcssfirebasefirebase-authentication

解决方案


我试图在用户登录时隐藏此登录/注册导航元素,但它不起作用。

你确定你不想要这个

 firebase.auth().onAuthStateChanged(function(user) {
   if (!user) {
     document.getElementById("Login/Register").style.display = '';
     document.getElementById("logout").style.display = "none";
   } else {
     document.getElementById("Login/Register").style.display = 'none';
     document.getElementById("logout").style.display = "";
   }
 });

推荐阅读