繁体   English   中英

如何使用jQuery显示和隐藏无序列表(ul)内的列表项(li)元素(最好)?

[英]How to show and hide list items(li) elements inside unordered list(ul) using jquery(preferably)?

HTML文件中的无序列表:

    <ul class="navbar-nav ml-auto" id="authorization">
          <li class="nav-item" class="authorizationLink">
            <a class="nav-link" href="registration.html">Registration</a>
          </li>
          <li class="nav-item" class="authorizationLink">
            <a class="nav-link" href="login.html">Login</a>
          </li>
          <li class="nav-item dropdown" id="usernameDropdown" style="display: none">
              <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
              </a>
              <div class="dropdown-menu" aria-labelledby="navbarDropdown">
                <a class="dropdown-item" href="#">Profile</a>
                <div class="dropdown-divider"></div>
                <a class="dropdown-item" href="#">Logout</a>
              </div>
          </li>
      </ul>
      <button id="someButton">button</button>

and to show the list item with on the click of a button. 我想通过单击按钮隐藏带有的列表项,并显示带有的列表项。 到目前为止,我已经尝试过了:

    $( document ).ready(function() {
        $("#someButton").click(function() {
            $(".authorizationLink").hide();
            $("#usernameDropdown").show();
        })
    }

我已经尝试了其他几件事,其中一种解决方案有时可以工作,但大多数时候都无法工作。 有没有一种方法可以使用jQuery? 也许有一些CSS技巧或其他?

您的逻辑很好,您只是有一些语法错误。

  • class="nav-item" class="authorizationLink"更改为class="nav-item authorizationLink" 每个元素只能有一个class属性。

  • 您在jQuery代码的末尾缺少)

HTML元素只能具有一个class属性。 如果有更多类,请将它们组合在同一字符串中,并用空格分隔。 另外,您还需要jQuery $(document).ready()的后缀。

  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script> <ul class="navbar-nav ml-auto" id="authorization"> <li class="nav-item authorizationLink"> <a class="nav-link" href="registration.html">Registration</a> </li> <li class="nav-item authorizationLink"> <a class="nav-link" href="login.html">Login</a> </li> <li class="nav-item dropdown" id="usernameDropdown" style="display: none"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> </a> <div class="dropdown-menu" aria-labelledby="navbarDropdown"> <a class="dropdown-item" href="#">Profile</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">Logout</a> </div> </li> </ul> <button id="someButton">button</button> <script> $( document ).ready(function() { $("#someButton").click(function() { $(".authorizationLink").hide(); $("#usernameDropdown").show(); }) }); </script> 

在这里,只需更改设置class属性的方式即可。 代替具有2个类属性,将值组合到相同的字符串中。

 $( document ).ready(function() { $("#someButton").click(function() { $(".authorizationLink").hide(); $("#usernameDropdown").show(); }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul class="navbar-nav ml-auto" id="authorization"> <li class="nav-item authorizationLink"> <a class="nav-link" href="registration.html">Registration</a> </li> <li class="nav-item authorizationLink"> <a class="nav-link" href="login.html">Login</a> </li> <li class="nav-item dropdown" id="usernameDropdown" style="display: none"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> </a> <div class="dropdown-menu" aria-labelledby="navbarDropdown"> <a class="dropdown-item" href="#">Profile</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">Logout</a> </div> </li> </ul> <button id="someButton">button</button> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM