Мой список выбора называется dropListBuilding
. Следующий код не работает:
for (var i = 0; i < buildings.length; i++) {
var val = buildings[i];
var text = buildings[i];
alert("value of builing at: " + i.toString() + " is: " + val);
$("#dropListBuilding").addOption(val, text, false);
}
Эта строка умирает:
$("#dropListBuilding").addOption(val, text, false);
Какое право добавлять элементы в раскрывающийся список jQuery? Я тестировал без этой строки, и переменная зданий имеет свой элемент данных.
Не делайте ваш код настолько сложным. Это можно сделать просто, как показано ниже, с помощью итератора типа foreach:
$.each(buildings, function (index, value) {
$('#dropListBuilding').append($('<option/>', {
value: value,
text : value
}));
});
$('#dropListBuilding').html('');
Это, на мой взгляд, завершает ответ.
Выполнение этого так всегда работало для меня, я надеюсь, что это поможет.
var ddl = $("#dropListBuilding");
for (k = 0; k < buildings.length; k++)
ddl.append("<option value='" + buildings[k]+ "'>" + buildings[k] + "</option>");
$('#dropListBuilding').append('<option>'+val+'</option>');
Ваш код выходит из строя, потому что вы выполняете метод (addOption) для объекта jQuery (и этот объект не поддерживает метод)
Вы можете использовать стандартную функцию Javascript следующим образом:
$("#dropListBuilding")[0].options.add( new Option("My Text","My Value") )
.options.add(
Это прекрасно работает, попробуйте это.
var ob = $("#myListBox");
for (var i = 0; i < buildings.length; i++) {
var val = buildings[i];
var text = buildings[i];
ob.prepend("<option value="+ val +">" + text + "</option>");
}
Похоже, вам нужен этот плагин, поскольку он следует за вашим существующим кодом, возможно, что в js файле подключался какой-то файл.
http://www.texotela.co.uk/code/jquery/select/
var myOptions = {
"Value 1" : "Text 1",
"Value 2" : "Text 2",
"Value 3" : "Text 3"
}
$("#myselect2").addOption(myOptions, false);
// use true if you want to select the added options » Run
Если вы не хотите полагаться на плагин 3.5 kB для jQuery или не хотите создавать строку HTML при сохранении зарезервированных символов HTML, вот простой способ, который работает:
function addOptionToSelectBox(selectBox, optionId, optionText, selectIt)
{
var option = document.createElement("option");
option.value = optionId;
option.text = optionText;
selectBox.options[selectBox.options.length] = option;
if (selectIt) {
option.selected = true;
}
}
var selectBox = $('#veryImportantSelectBox')[0];
addOptionToSelectBox(selectBox, "ID1", "Option 1", true);
Для меня это работало
success: function(data){
alert("SUCCCESS");
$.each(data,function(index,itemData){
console.log(JSON.stringify(itemData));
$("#fromDay").append( new Option(itemData.lookupLabel,itemData.id) )
});
}