The JavaScript prepend() method
The prepend() method adds one or more nodes or text strings to the start of an element's children. list.prepend(newItem) puts newItem first. It's the front-insert counterpart of append(), accepts multiple arguments and plain strings, and replaces the older insertBefore() for this job.
Overview
prepend() inserts content at the beginning of an element, inside it: the mirror image of append(), which adds to the end. feed.prepend(newPost) puts the new post at the top, exactly what you want for a newest-first list, a new chat message, or a freshly added notification.
Like append(), it's flexible: it takes multiple arguments at once, and those can be strings as well as nodes. Strings are inserted as plain text (not parsed as HTML), so it's safe with user input, unlike innerHTML. It returns undefined.
It replaced the clumsier old idiom parent.insertBefore(node, parent.firstChild), which needed a reference to the first child. The related insert methods round out the set: append() for the end, before()/after() for outside the element. For building many nodes efficiently, assemble them in a DocumentFragment first.
Syntax
parent.prepend(node)
parent.prepend(node1, node2, "text") // multiple, mixed
const li = document.createElement("li");
list.prepend(li); // li becomes the first child
Parameters
The prepend() method accepts the following parameters.
| Parameter | Description |
|---|---|
nodes/strings |
One or more nodes or strings to add at the start. Strings are inserted as plain text (not HTML). |
Example
<ul id="feed" style="font:15px system-ui">
<li>Older item</li>
</ul>
<button onclick="addNewest()" style="font:14px system-ui;margin-top:8px">Add newest on top</button>
<script>
let n = 0;
function addNewest() {
const li = document.createElement('li');
li.textContent = 'Newest item ' + (++n);
document.getElementById('feed').prepend(li);
}
</script>
Best practices
- Use
prepend()for newest-first lists and inserting at the top. - Pass strings for text: inserted safely, not parsed as HTML.
- Use append() for the end,
before()/after()for outside the element. - It replaces the older
insertBefore(node, firstChild)pattern.
Frequently asked questions
What does prepend() do?
What is the difference between prepend() and append()?
prepend() inserts at the start; append() inserts at the end. Both accept multiple nodes and strings.How do I add an element to the top of a list?
list.prepend(element), which makes it the first child.