I’d like to create a new li
for each variable, but instead I get one li
with all of the variables together.
var ul = document.getElementById("results");
const li = document.createElement("li");
let vin = "VIN: " + result['vin'];
let country = "Country: " + result["country"];
let manuf = "Manufacturer: " + result["manufacturer"];
let region = "Region: " + result["region"];
let years = "Years: " + result["years"];
li.append(document.createTextNode(vin));
ul.append(li)
li.append(document.createTextNode(country));
ul.append(li)
li.append(document.createTextNode(manuf));
ul.append(li)
li.append(document.createTextNode(region));
ul.append(li)
li.append(document.createTextNode(years));
ul.append(li)
This is what I get:
VIN: 4F2YU09161KM33122Country: United StatesManufacturer: MazdaRegion: North AmericaYears: 2001
I want this:
- VIN: 4F2YU09161KM33122
- Country: United States
- Manufacturer: Mazda
- Region: North America
- Years: 2001
4
Answers
Try this, should be work. Read the code, then you will understand your issue.
Your problem is only one
li
element was created and changed repeatedly in various text nodes. So that’s why you get only one element.To solve this create five distinct
li
elements, each containing a text node.Wrap the repeated code in a function and call it again and again…:
You have to define a seperate li element for every variable insteadenter code here of adding all the text nodes to the same li element:
You can’t append the same element more than once. It doesn’t exist after the first. However, you can append a clone of it with
cloneNode()
, passingtrue
to retain text content. Also, you don’t need to create text nodes. Just insert the text.