49

I have a <ul> element. How can remove all the <li> elements inside it, except for the first and the last, using jQuery?

YakovL
  • 7,557
  • 12
  • 62
  • 102
Tanmoy
  • 44,392
  • 16
  • 45
  • 55

5 Answers5

115

To remove from all ul-s on the page the li-s that are neither the first nor the last:

$('ul li:not(:first-child):not(:last-child)').remove();

Or using a specific id:

$('#yourul li:not(:first-child):not(:last-child)').remove();

If you have a jQuery object with your ul in it:

$(yourul).find('li:not(:first-child):not(:last-child)').remove();
umar_
  • 491
  • 5
  • 17
Mario Menger
  • 5,862
  • 2
  • 28
  • 31
18

Have you tried selecting all the list elements, and then removing the first and last ones from the list?

$('ul li').not('li:first, li:last').remove()
Samir Talwar
  • 14,220
  • 3
  • 41
  • 65
7
$('ul li').not('li:first, li:last').remove(); 

This will remove all items from list Except/Exclude first and last element,


To remove all items from any list

$('#yourulid li').remove();  //remove all li items from list named/id #yourulid
user602668
  • 71
  • 1
  • 1
2
$("ul li:not(:first-child):not(:last-child)").remove();
cletus
  • 616,129
  • 168
  • 910
  • 942
0

Here's a way to do it using slice

$("#removeAllButFirstAndLast").click(function() {
  $("#myUL").children().slice(1, -1).remove()
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="myUL">
  <li>first</li>
  <li>second</li>
  <li>third</li>
  <li>fourth</li>
</ul>

<div id="removeAllButFirstAndLast">click to remove all but first and last</div>
user2314737
  • 27,088
  • 20
  • 102
  • 114