Goal:
I am trying to populate variables of a function inside of an 'onclick' attribute of a dynamically created button using javascript and HTML. When I press the button, I want to execute a function based off of the variables inside the button. The variables come from a JS object (or rather, a specific object within a list of objects).
This is what I've tried:
var testDivElement = document.getElementById("testDiv");
//Object
var locations = [{
name: "Califonia",
address: "Califonia Test Address",
times: [1, 2, 3, 4, 5]
},
{
name: "Idaho",
address: "Idaho Test Address",
times: [1, 2, 3]
},
{
name: "Iowa",
address: "Iowa Test Address",
times: [0]
}
];
//Function
function createDivs() {
var content;
for (i in locations) {
content += '<div>' +
'<p>' + locations[i].name + '</p>' +
'<p>' + locations[i].address + '</p>' +
'<button onclick="readDataToConsole(' + location[i].name + ',' + location[i].address + ',' + location[i].times + ')">Press Me</button>';
}
testDivElement.innerHTML = content;
}
function readDataToConsole(name, address, times) {
console.log(name);
console.log(address);
for (i in times) {
console.log(times[i]);
}
}
<body>
<button onclick="createDivs()">clickMeNow</button>
<div id="testDiv"></div>
</body>
I am able to generate what is in the <p> tags when I do not try to include the <button> tag.
I can't find anything else online that could help me with this.