2015-10-21 1 views
0

Мне нужно добавить параметры в раскрывающийся список. У меня есть массив с параметрами, которые мне нужно в раскрывающемся списке, но я не уверен, как добавить массив к спискудобавить опции для выпадающего списка с помощью javascript

var productList = document.getElementById("selectFood"); 
var foodOption = document.createElement("option"); 

foodOption.textContent = [{ 
    option1: "Meat Lovers" 
}, { 
    option2: "Buffalo Wings" 
}, { 
    option3: "margherita" 
}, { 
    option4: "classic" 
}]; 

for (i = 0; i < productList.length; i++) { 
    productList.appendChild(foodOption); 
} 
+0

Это 'textContent' массив ** очень ** странно. Это массив объектов, где каждый объект имеет ровно одно свойство, а свойства имеют разные имена. Если вы можете изменить его, я бы предложил изменить его. –

ответ

0

вы можете сделать с JQuery,

$.each(foodOption.textContent, function (i, value) { 
    $('#selectFood').append($('<option>').text(value).attr('value',value)); 
}); 
+0

он запрашивает решение в java-скрипте. но этот jQuery выглядит потрясающе – Radu

-1

Попробуйте под кодом для вашего решения.

var productList = document.getElementById("selectFood"); 
var textContent = [{ 
    option1: "Meat Lovers" 
}, { 
    option2: "Buffalo Wings" 
}, { 
    option3: "margherita" 
}, { 
    option4: "classic" 
}]; 

for(var iIntex in textContent) { 
    var foodOption = document.createElement("option"); 
    var option=textContent[iIndex]["option"+(iIndex+1)]; 
    foodOption.setAttribute("value",option); 
    foodOption.innerHTML=option; 
    productList.appendChild(foodOption); 
} 
0

Вам необходимо создать элемент опции.

for (i = 0; i < foodOption.textContent.length; i++) { 
    var newElement = document.createElement('option'); 
    newElement.innerHTML = foodOption.textContent[i]; 
    productList.appendChild(newElement); 
} 
+0

Я сделал свой элемент option 'foodOption' – Matt

+0

@Matt вы добавляете весь объект, что вы создали foodOption - это переменная в javascript, чтобы превратить ее в html, чтобы вы сначала создали элемент html. Затем этот элемент нужно добавить. в вашем коде вы пытаетесь добавить массив на каждый раз, когда он запущен. Вы понимаете разницу? – Radu

0

Вы должны сделать массив строки, а не массив объектов

попробовать этот

foodOption.textContent = ["Meat Lovers" , "Buffalo Wings" , "margherita", "classic" ] 


$.each(foodOption.textContent, function (index, value) { 

    $('#selectFood').append($('<option/>', { value: value, text: value })); 

}); 
Смежные вопросы