You're creating a proper UL element (HTMLUListElement
), which is great. You can use that directly by simply appending it to your target:
document.getElementById("list").appendChild(generateListFromArray(array));
If the target already contains content you want to replace (rather than add to), you can clear the target element first:
var list = document.getElementById("list"); // Get the target element
list.innerHTML = ""; // Remove previous content
list.appendChild(generateListFromArray(array)); // Append your generated UL
There's simply no reason, at all, to convert the element you created to markup first (by using .innerHTML
or .outerHTML
on the return value of generateListFromArray
).
If list
is also a ul
and you want to replace it, you can do that with insertBefore
and removeChild
:
var list = document.getElementById("list"); // Get the target element
var parent = list.parentNode; // Get its parent
var newList = generateListFromArray(array); // Get the new one
parent.insertBefore(
newList, // Insert the new list...
list // ...before the old one
);
parent.removeChild(list); // Remove the old
newList.id = "list"; // Give the new list the ID the
// old one had
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…