Если вы хотите, чтобы новые <option>
s были связаны с DOM и работали в разных браузерах, я бы предложил добавить их к вашему выбору, используя document.createElement и document.createTextNode, например:
var opt = document.createElement('option');
opt.value = "someValue";
opt.appendChild(document.createTextNode("someText"));
$('#currentcat').append(opt);
Таким образом, вместо использования $ .get вам, вероятно, следует использовать $. GetJSON , чтобы получить объект JSON, содержащий значения и текстовые атрибуты опций, которые вы добавляете в свой выбор. Объект JSON, полученный с сервера, должен выглядеть следующим образом:
{ "options" : [
{ "text" : "Fishing", // First element
"value" : "5" },
{ "text" : "Skiing", // Second Element
"value" : "70" }
]
}
Итерация по объекту будет выглядеть примерно так:
$.getJSON("getcat.php", { c: value }, function(json) {
var $select = $('<select></select>).attr('id','currentcat').attr('name','currentcat').hide();
$.each(json.options, function(i, item) {
var opt = document.createElement('option');
opt.value = item.value;
opt.appendChild(document.createTextNode(item.text));
$('#currentcat').append(opt);
});
$("#newcat").hide();
$('#someDiv').append($select).show();
});
Выше не проверено, и отражает мое понимание вашего вопроса. Надеюсь, это поможет.