Move Clicked List Items To Top Of List

Assuming HTML like this:

<ul>
  <li>one</li>
  <li>two</li>
  <li>three</li>
</ul>

So if "Two" is clicked, move it to the top of the list.

$("li").click(function() {
     
  $(this).parent().prepend($(this));
  
});

Will work for multiple lists...

Comments

  1. Oliver
    Permalink to comment#

    This vanilla.js version isn’t much longer…

    oranges
    pears
    apples
    peaches
    strawberries

    <

    script type=”text/javascript”>

    var list = document.getElementById(“fruits”).childNodes;

    for (var i = 0; i < list.length; i++) {
    list[i].addEventListener(“click”,
    function() {
    fruits.insertBefore(this, fruits.childNodes[0])
    });
    }

Leave a Comment

Posting Code

We highly encourage you to post problematic HTML/CSS/JavaScript over on CodePen and include the link in your post. It's much easier to see, understand, and help with when you do that.

Markdown is supported, so you can write inline code like `<div>this</div>` or multiline blocks of code in triple backtick fences like this:

```
<script>
  function example() {
    element.innerHTML = "<div>code</div>";
  }
</script>
```

We have a pretty good* newsletter.