检查ul的长度并去除li元素

Leg*_*end 2 javascript jquery

我试图仅在元素超过特定长度时才<li><ul>元素中删除最后一个元素.为此,我正在做这样的事情:

var selector = "#ulelement"
if($(selector).children().length > threshold) {
   $(selector + " >:last").remove();
}
Run Code Online (Sandbox Code Playgroud)

我不喜欢我必须使用选择器两次的事实.有没有更短的方法来做到这一点?像"删除长度超过阈值"的想法.我在想,也许有一种方法可以使用live()函数来实现,但我不知道如何使用.

Kob*_*obi 10

缓存选择器的结果很常见.在这里,您可以<li>直接搜索s:

var lis = $("#ulelement li");
if(lis.length > threshold) {
   lis.eq(lis.length - 1).remove();
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您还可以使用单个选择器实现此目的:

$("#ulelement li:gt(4):last").remove();
Run Code Online (Sandbox Code Playgroud)

即:在<li>索引大于4(或您的阈值)的所有索引中,选择最后一个并将其删除.