【问题标题】:How to hide <li> with jquery?如何用 jquery 隐藏 <li>?
【发布时间】:2018-02-05 15:00:16
【问题描述】:

我有两个 &lt;ul&gt;&lt;/ul&gt; 元素。一个具有链接,另一个具有我想要显示的内容,具体取决于单击哪个链接。 这是&lt;ul&gt;'s的代码:

<div class="container">
  <ul id="filter">
    <li class="current"><a href="#">Attendess (Middle School/High School Students)</a></li>
    <li><a href="#">Attendees (College Students)</a></li>
    <li><a href="#">Mentor/Vounteer</a></li>
</ul>

<ul id="forms">
    <li class="Attendess (Middle School/High School Students)"> <% include ./forms/Students %> </li>
    <li class="Attendees (College Students)"> <% include ./forms/college %> </li>
    <li class="Mentor/Vounteer"> <% include ./forms/attendees %> </li>
</ul>

现在使用 jQuery,我实现了选择不同过滤器的功能,但是当我这样做时,我的表单并没有隐藏。

代码如下:

  <script type="text/javascript">
    $(document).ready(function(){
      $("#filter a").click(function(){
        $("#filter .current").removeClass("current");
        $(this).parent().addClass("current");
        var filterVal = $(this).text();
        $("#forms li").fadeIn();
        $("#forms li").not("." + filterVal).fadeOut();
      });
    });

让我知道你们的想法?

【问题讨论】:

  • Node.js 不是 jquery,jquery 也不是 node.js。请删除 node.js

标签: javascript jquery node.js ejs


【解决方案1】:

我更改了您的部分代码。类不能间隔。间隔类意味着:多个类。

$(document).ready(function() {
  $("#filter a").click(function() {
    $("#filter .current").removeClass("current");
    $(this).parent().addClass("current");
    var filterVal = $(this).data('index');
    $("#forms li").fadeIn();
    $("#forms li:not(." + filterVal + ")").hide();
  });
});
.college,
.attendees {
  display: none;
}
a:hover{
  cursor:pointer;
  text-decoration:underline;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  <ul id="filter">
    <li class="current"><a data-index="students">Attendess (Middle School/High School Students)</a></li>
    <li><a data-index="college">Attendees (College Students)</a></li>
    <li><a data-index="attendees">Mentor/Vounteer</a></li>
  </ul>

  <ul id="forms">
    <li class="students">
      <% include ./forms/Students %>
    </li>
    <li class="college">
      <% include ./forms/college %>
    </li>
    <li class="attendees">
      <% include ./forms/attendees %>
    </li>
  </ul>

【讨论】:

  • 那行得通。太感谢了。当您第一次加载页面时,我还有一个问题,所有三个表单 li 都已加载。我怎么做才能只加载学生李?谢谢。
  • 使用 .college,.attendees{display:none;} 添加样式。更新代码检查一下。
  • 工作就像一个魅力。多谢兄弟。当我点击不同的链接时,有没有办法让我删除 .fadeIn() cuz,一切都会淡入一秒钟,然后又恢复正常。我保证这是最后一个问题?
  • 这里没有人在听问题方面有任何问题。我们是来帮忙的。所以你不想要fadeIn()?。检查编辑的代码并随时提出任何问题。我没有删除fadeIn()。但让它正常。
  • 再次,工作就像一个魅力。谢谢。我必须提高我的 UI 技能,哈哈。我真的很感激。
猜你喜欢
  • 2011-07-15
  • 1970-01-01
  • 1970-01-01
  • 2011-09-17
  • 2015-02-27
  • 1970-01-01
  • 2013-03-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多