Вы можете создавать массивы в JavaScript, содержащие ваши различные даталисты.Они могут быть размещены в отдельном файле, если это необходимо, и могут быть связаны с тегом скрипта.Фрагмент ниже показывает массивы, определенные локально, так как для этого фрагмента не существует внешнего файла.При выборе типа пищи соответствующий массив может использоваться для создания новых элементов DOM для списков данных:
var foodgroup = document.getElementById("foodgroup");
var datalistCont = document.getElementById("datalistCont");
//
function start() {
foodgroup.addEventListener("change", loadDatalist);
}
//
function loadDatalist() {
datalistCont.innerHTML = "";
var food = foodgroup.options[foodgroup.selectedIndex].value;
//
if (food == "fruit" || food == "veg") {
var inp = document.createElement("INPUT");
datalistCont.appendChild(inp);
inp.setAttribute('list', food);
//
var dl = document.createElement("DATALIST");
dl.id = food;
datalistCont.appendChild(dl);
//
newDatalist = document.getElementById(food);
//
var selectedArray = window[food];
for (var x = 0; x < selectedArray.length; x++) {
var opt = document.createElement("OPTION");
opt.value = selectedArray[x];
newDatalist.appendChild(opt);
}
}
}
//
veg = ["Pumpkin", "Squash", "Carrot", "Lettuce", "Bell Pepper"];
fruit = ["Apple", "Orange", "Banana", "Pineapple", "Strawberry"];
//
window.load = start();
Select Food group
<select id="foodgroup">
<option value="none">Select One</option>
<option value="veg">Vegetable</option>
<option value="fruit">Fruit</option>
</select>
<br />
<div id="datalistCont"></div>