Jquery 限制LI的数量并添加更多链接

Jquery 限制LI的数量并添加更多链接,jquery,limit,Jquery,Limit,我正在动态创建多个列表,需要首先将其限制为5个,然后有一个“More”链接,该链接应取自与class.parentcat最近的前一个a标记 这就是我目前所拥有的 HTML/JQuery <h2><a class="parentcat" title="" href="#">Heading</a></h2> <ul class="subcat"> <li><a href="#">Link 1</a&

我正在动态创建多个列表,需要首先将其限制为5个,然后有一个“More”链接,该链接应取自与class.parentcat最近的前一个a标记

这就是我目前所拥有的

HTML/JQuery

<h2><a class="parentcat" title="" href="#">Heading</a></h2>
<ul class="subcat">
      <li><a href="#">Link 1</a></li>
      <li><a href="#">Link 2</a></li>
      <li><a href="#">Link 3</a></li>
      <li><a href="#">Link 4</a></li>
      <li><a href="#">Link 5</a></li>
</ul>


$(function () {
    var link = ($(this).find('a.parentcat').attr('href'));

    $("ul.subcat").each(function () {
        $("li:gt(5)", this).hide(); /* :gt() is zero-indexed */
        $("li:nth-child(6)", this).after("<li class='more'><a href='#'>More...</a></li>"); /* :nth-child() is one-indexed */
    });
});

$(函数(){ var link=($(this.find('a.parentcat').attr('href')); $(“ul.subcat”)。每个(函数(){ $(“li:gt(5)”,this.hide();/*:gt()的索引为零*/ $(“li:nth-child(6)”,this.)。在(“
  • ”)之后;/*:nth-child()是一个索引*/ }); });

    这限制了LI的显示量,但变量只是查找许多a.parentcat标记中的第一个,它应该查找距离UL最近的a.parentcat。也可能是一个非常愚蠢的问题,我应该让谁将变量放入.after()中?我所做的所有尝试都失败了。

    当然,您需要在
    每个
    循环中检索URL。否则,
    .attr()
    将始终使用jQuery对象中的第一个元素

    $("ul.subcat").each(function () {
        var link = $(this).prev('h2').find('a.parentcat').attr('href');
        $("li:gt(5)", this).hide(); /* :gt() is zero-indexed */
        $("li:nth-child(6)", this).after("<li class='more'><a href='#'>More...</a></li>"); /* :nth-child() is one-indexed */
    });
    
    $(“ul.subcat”)。每个(函数(){
    var link=$(this.prev('h2').find('a.parentcat').attr('href');
    $(“li:gt(5)”,this.hide();/*:gt()的索引为零*/
    $(“li:nth-child(6)”,this.)。在(“
  • ”)之后;/*:nth-child()是一个索引*/ });
    您可以使用
    每个
    循环并将所有
    href
    存储在一个数组中:

    var links = [];
    $('a.parentcat').each(function(i, v){
       links[i] = $(this).attr('href');
    })
    

    请显示DOM结构,您的第一个
    $(此)
    没有意义。此时您可以简单地使用
    $('a.parentcat')
    ,因为您正在搜索整个文档。我也添加了HTML。我刚刚更新了它以显示我的HTML。a.parentcat作为标题位于LI之外。