使用 jQuery 切换可见列表项

发布于 2024-12-22 08:24:05 字数 238 浏览 1 评论 0原文

我的页面上有多个无序列表。在每个列表中,我想默认仅显示前五个列表项,然后有一个链接可以打开和关闭剩余项目的显示。

我从这个开始:

$("ul li").slice(5).hide();

但这最终会隐藏所有列表中的所有项目,除了第一个列表中的前五个项目,因为它们都会一起计数。

我怎样才能做到这一点,但让它单独影响每个列表(请注意,我无法向每个列表添加唯一的 ID)?

I have multiple unordered lists on my page. In each list, I want to show only the first five list items by default, then have a link that toggles the display of the remaining items on and off.

I started off with this:


$("ul li").slice(5).hide();

But that ends up hiding all items in all lists except for the first five in the first list, because they all get counted together.

How can I do this but have it affect each list individually (note that I can't add unique IDs to each list)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

凶凌 2024-12-29 08:24:05

您需要使用 each 函数对您拥有的每个

    执行此操作。尝试这样的事情:

$("ul").each(function(){
  $(this).children().slice(5).hide();
});

然后使用这样的代码来显示它们全部:

$("#btn").click(function(){
   $("ul").each(function(){
      $(this).children().show();
   });
});  

这是一个jsfiddle:
http://jsfiddle.net/F8ByE/

希望这有帮助:)

You would need to use the each function to do this for each and every <ul> you have. Try something like this:

$("ul").each(function(){
  $(this).children().slice(5).hide();
});

Then use some code like this to show them all:

$("#btn").click(function(){
   $("ul").each(function(){
      $(this).children().show();
   });
});  

Here is a jsfiddle:
http://jsfiddle.net/F8ByE/

Hope this helps :)

十雾 2024-12-29 08:24:05

您可以迭代每个 ul 元素,然后隐藏 li 元素

$("ul").each(function() {
    $(this).find('li:gt(5)').hide();
});

You can iterate each ul elements and then hide li elements

$("ul").each(function() {
    $(this).find('li:gt(5)').hide();
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文