jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 删除除前五个lis和下一个五个lis之外的所有li大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想删除ul中的所有li,除了之前的五个lis和下一个五个lis.

例如:

<ul>
    <li id="Li0"></li>
    <li id="Li1"></li>
    <li id="Li2"></li>
    <li id="Li3"></li>
    <li id="Li4"></li>
    <li id="Li5"></li>
    <li id="Li6"></li>
    <li id="Li7"></li>
    <li id="Li8"></li>
    <li id="Li9"></li>
    <li id="Li10"></li>
    <li id="Li11"></li>
    <li id="Li12"></li>
    <li id="Li13"></li>
    <li id="Li14"></li>
    <li id="Li15"></li>
    <li id="Li16"></li>
    <li id="Li17"></li>
    <li id="Li18"></li>
    <li id="Li19"></li>
    <li id="Li20"></li>
</ul>

假设我点击了Li和id Li9.所以结果应该是

<ul>
    <li id="Li4"></li>
    <li id="Li5"></li>
    <li id="Li6"></li>
    <li id="Li7"></li>
    <li id="Li8"></li>
    <li id="Li9"></li>
    <li id="Li10"></li>
    <li id="Li11"></li>
    <li id="Li12"></li>
    <li id="Li13"></li>
    <li id="Li14"></li>
</ul>

我知道有:lt()和:gt()选择器用于排除元素,但到目前为止我还没有取得多大进展.

解决方法

如果要删除除前一个和后五个之外的所有元素,相对于单击的元素,可以将 .slice() [docs].index() [docs]一起使用:

// assuming `this` refers to the clicked li element
var index = $(this).index(),$lis = $(this).parent().children();

// Math.max(...) guarantees that we are not removing from 0 to the end of
// the list of `index - 5` is negative.
// Alternatively you can use `5 > index ? 0 : index - 5`
$lis.slice(0,Math.max(0,index - 5)).add($lis.slice(index + 6)).remove();

这是“除了列表中的第一个和最后五个元素之外的所有元素”的问题的答案.

使用.slice() [docs]非常容易:

$('ul > li').slice(5,-5).remove();

大佬总结

以上是大佬教程为你收集整理的jquery – 删除除前五个lis和下一个五个lis之外的所有li全部内容,希望文章能够帮你解决jquery – 删除除前五个lis和下一个五个lis之外的所有li所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: