Jquery 限制LI的数量并添加更多链接
我正在动态创建多个列表,需要首先将其限制为5个,然后有一个“More”链接,该链接应取自与class.parentcat最近的前一个a标记 这就是我目前所拥有的 HTML/JQueryJquery 限制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&
<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之外。