Следующий код не проверен, я просто написал его, чтобы дать вам отправную точку для работы. Я надеюсь, что это то, что вы ищете:
var sections = [
{"name": "The home page", "value": "/index.php"},
{"name": "The Pictures Section", "value": "/pics/index.html"},
...
],
urls = [
{"name" : "My Site", "value:":"homesite.com/my_site"},
{"name" : "His Site", "value:":"homesite.com/his_site"},
{"name" : "Her Site", "value:":"homesite.com/her_site"},
...
];
function generateSelectHtml() {
var html = '<select id="sections" onchange="showSescion(this);">';
for (var i = 0; i < sections.length; i++) {
html += '<option value="' + sections[i].value + '">' + sections[i].name + '</option>';
}
html += "</select>";
return html;
}
function generateSelectDom() {
var el = document.createElement("SELECT");
el.id = "sections";
el.onchange = function() { showSection(el); };
for (var i = 0; i < sections.length; i++) {
var option = document.createElement("option");
option.value = sections[i].value;
option.innerText = sections[i].name;
el.appendChild(option)
}
return el;
}
function showSection(box) {
var container = document.getElementById("listContainer");
for (var i = 0; i < urls.length; i++) {
var item = document.getElementById("a");
item.href = urls[i].value + box.value;
item.innerText = urls[i].name;
container.appendChild(item);
}
}
Тебе, конечно, придется многое изменить. Что я сделал, это:
generateSelectHtml возвращает html для поля выбора, вы можете добавить его в dom следующим образом:
document.getElementById("AN_ID").innerHTML = generateSelectHtml();
Метод generateSelectDom создает фактические элементы dom, поэтому вы можете просто использовать appendChild , чтобы добавить его к существующему dom.
Метод showSection просто выводит выбранные значения в элемент с идентификатором listContainer .