【问题标题】:How to show() and hide() blocks of list items using jQuery如何使用 jQuery 显示()和隐藏()列表项块
【发布时间】:2016-08-06 15:18:36
【问题描述】:

我有一个动态生成列表项的网站,如下所示:

<li class="comment even thread-odd thread-alt depth-1" id="li-comment-10">...</li>
<li class="comment odd alt thread-even depth-1" id="li-comment-17">...</li>
<li class="comment even thread-odd thread-alt depth-1" id="li-comment-20">...</li>
<li class="comment byuser comment-author-not-used-2 odd alt depth-2" id="li-comment-21">
...</li>

目前有 40 多个此类项目遵循上述模式。

我想使用 jQuery 来显示/隐藏 5 个块中的列表项。我知道如何编写 jQuery 进行切换,但我不知道如何计算和标记 5 个块以显示和隐藏。

难题在于这些&lt;li&gt; 是在CMS 中自动生成并在页面上动态呈现的。所以我想在页面渲染后使用 JavaScript/jQuery 进入并识别并以某种方式标记 5 个列表项的块。

这样可行吗?

希望这有点道理。

【问题讨论】:

  • 你的意思是ul元素超过40个?
  • 不,超过 40 个 &lt;li&gt;&lt;/li&gt; 元素容器 @guest271314
  • &lt;li&gt;&lt;/li&gt; 容器是什么意思?是否要求在 ul 元素中仅显示 5 个 li 元素?

标签: javascript jquery dynamic content-management-system html-lists


【解决方案1】:

您可以使用 jQuery :eq() 选择器对它们进行一些数学运算。例如,您可以通过$("li:eq(1)") 获得第二个&lt;li&gt;

【讨论】:

  • 酷而有趣。我将开始处理@Quinto。谢谢
  • 感谢您帮助@Quinto。 (at)guest271314 的答案最终完全符合我的需要。所以我选择了那个作为答案。但我非常感谢您在这方面的帮助!
【解决方案2】:

尝试使用带有参数5:lt()选择器

$(document).ready(function() {
  $("ul li:lt(5)").show()
})
ul li {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js">
</script>
<ul>
  <li>0</li>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
  <li>6</li>
  <li>7</li>
</ul>

【讨论】:

  • 优秀的解决方案@guest271314。这也正是我所需要的。非常非常感谢您的帮助!
猜你喜欢
  • 2013-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-28
  • 1970-01-01
  • 1970-01-01
  • 2016-04-02
  • 2014-10-27
相关资源
最近更新 更多