我有一个表,其中包含无序列表,每个列表中有几十个列表项。列表共享同一个类。我想循环遍历每个列表,如果它有超过5个列表项,我想显示前5项,隐藏其余部分,并显示到另一个页面的链接。
我在逻辑上有问题,因为我只能像上面所说的那样处理第一个无序列表,然后隐藏后面的所有其他列表。如果没有超过5行并继续到下一列,如何检查每个列表并中断?
下面是我尝试过的基本HTML和JS。
提前感谢您的帮助!
$('ul.resultsList').each(function () {
if($(this).children().length > 4) {
$('li:gt(4)').hide();
$('.seeMore').show();
}else {
$('.seeMore').hide();
return false;
}
}); <table id="docResults">
<thead>
<tr>
<th>Names</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<ul class="resultsList">
<li>Smith, J</li>
<li>Smith, F</li>
<li>Smith, K</li>
<li>Smith, L</li>
<li>Smith, M</li>
<li>Smith, N</li>
<li>Smith, O</li>
<li>Smith, P</li>
<li>Smith, Q</li>
<li>Smith, R</li>
</ul>
<a href="#" class="seeMore">
</td>
</tr>
<tr>
<td>
<ul class="resultsList">
<li>Smith, J</li>
<li>Smith, F</li>
<li>Smith, K</li>
<li>Smith, L</li>
<li>Smith, M</li>
<li>Smith, N</li>
<li>Smith, O</li>
<li>Smith, P</li>
<li>Smith, Q</li>
<li>Smith, R</li>
</ul>
<a href="#" class="seeMore">
</td>
</tr>
</tbody>
</table>
发布于 2016-02-26 21:12:19
尝试在此上下文中使用$(this)对象调用.hide()
$('ul.resultsList').each(function () {
var td = $(this).closest("td");
if($(this).children().length > 4) {
$('li:gt(4)', this).hide();
$('.seeMore', td).show();
}else {
$('.seeMore', td).hide();
}
});https://stackoverflow.com/questions/35661781
复制相似问题