I have a JS feature in my app that allows the user to create a list one item at a time. I am trying now to give each item a bootstrap slider, but am encountering difficulties. I'm new to JS, so there might be some bad ideas in here (ones I would love help correcting). As it stands currently, if I take everything outside the <p> tags inside the for loop's added html out it works as intended, but with everything in it it renders a console error stating Uncaught TypeError: Cannot read property 'getAttribute' of null.
var proArray = [];
function addPro() {
proArray.push(document.getElementById("proInput").value);
document.getElementById("proForm").reset();
console.log(proArray);
for (var i = 0; i < proArray.length; i++) {
newItem = "<li><p>" + proArray[i] + "</p><input class='bootstrap-slider' type='text' id='proInput" + i + "' data-slider-id='proInput" + i + "' data-slider-min='0' data-slider-max='10' data-slider-value='5' /></li>";
}
var slider = new Slider('#proInput0', {
formatter: function(value) {
return 'Current value: ' + value;
}
});
document.getElementById("proList").innerHTML += newItem;
}
$('#proInput0').slider({
formatter: function(value) {
return 'Current value: ' + value;
}
});
<form id="proForm" onkeypress="return event.keyCode != 13;">
<input class="form-control text-left pro-con-input" id="proInput" placeholder="Add New Benefit" />
<div onclick="addPro()" class="btn pro-con-btn">Add</div>
</form>
<h3 class="text-left">Benefits</h3>
<ul class="text-left" id="proList">
</ul>
Can anyone help figure out where I'm going wrong and/or how to do this better?