I have a text file which I am reading and storing the data in a javascript array, it's a list of cuisines. I want to use the array to fill up a drop down select box. I know how to hard code in the values for the drop down box (using correct me if i'm wrong) but I want to be able to use the array to fill it up instead.
<script type="text/javascript"> var cuisines = ["Chinese","Indian"]; </script> <select id="CusineList"></select>
I have hard coded an array for simplicity, the "CuisineList" is my drop down box
Use a for
loop to iterate through your array. For each string, create a new option
element, assign the string as its innerHTML
and value
, and then append it to the select
element.
var cuisines = ["Chinese","Indian"]; var sel = document.getElementById('CuisineList'); for(var i = 0; i < cuisines.length; i++) { var opt = document.createElement('option'); opt.innerHTML = cuisines[i]; opt.value = cuisines[i]; sel.appendChild(opt); }
DEMO
UPDATE: Using createDocumentFragment
and forEach
If you have a very large list of elements that you want to append to a document, it can be non-performant to append each new element individually. The DocumentFragment
acts as a light weight document object that can be used to collect elements. Once all your elements are ready, you can execute a single appendChild
operation so that the DOM only updates once, instead of n
times.
var cuisines = ["Chinese","Indian"]; var sel = document.getElementById('CuisineList'); var fragment = document.createDocumentFragment(); cuisines.forEach(function(cuisine, index) { var opt = document.createElement('option'); opt.innerHTML = cuisine; opt.value = cuisine; fragment.appendChild(opt); }); sel.appendChild(fragment);
DEMO
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With