- From: Juha Lindstedt <notifications@github.com>
- Date: Wed, 06 May 2020 03:10:49 -0700
- To: whatwg/dom <dom@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
Received on Wednesday, 6 May 2020 10:11:02 UTC
`element.insertBefore(child, reference)` and `element.appendChild(child)` are not the most convenient way to update for example a list of items. `element.setChildren(children)` would make it so much easier to work with lists.
Here's an example solution for updating the children:
```js
function setChildren (parent, children) {
let traverse = parent.firstChild;
// go through children and place if not in place
for (let i = 0; i < children.length; i++) {
const child = children[i];
if (traverse === child) {
// already in place
traverse = traverse.nextSibling;
} else if (traverse) {
parent.insertBefore(child, traverse);
} else {
parent.appendChild(child);
}
}
// remove all the rest
while (traverse) {
const next = traverse.nextSibling;
parent.removeChild(traverse);
traverse = next;
}
}
```
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/dom/issues/862
Received on Wednesday, 6 May 2020 10:11:02 UTC