问问题
47660 次
2 回答
23
$.getJSON
如果您期望 json 响应,则可以使用。您可能还可以使用$.each()
然后简单.append()
地select
标记。可以参考this.property
里面的.each()
。
类似于以下内容:
$.getJSON("updateTypes.php?q="+brandName, function(data) {
$("#Type").html('');
$.each(data, function(){
$("#Type").append('<option value="'+ this.value +'">'+ this.name +'</option>')
)
})
这将假设您的 json 响应类似于以下内容:
[ { name : "foo", value : "bar" }, { name : "another", value : "example" } ]
于 2013-06-29T21:20:23.107 回答
13
您的代码$("#Type").remove();
删除了选择对象而不是其选项。删除选项的正确方法是:
$("#Type option").remove();
或者
$("#Type").html('');
第二种解决方案似乎更好,如下所述:How to remove options from select element without memory leak?
添加新选项的部分也有错误。您的 javascript 代码应该是:
var brandName = $("#Brand").val();
$.get("updateTypes.php?q="+brandName, function(data) {
$("#Type option").remove();
var typeData = JSON.parse(data);
for (loop=0; loop < typeData.length; loop++) {
$("#Type").get(0).options.add(new Option(typeData[loop]));
}
});
该$('#Type').get(0)
方法引用具有您想要使用的“选项”属性的原始 DOM 对象(如何从 JQuery 选择器获取 DOM 元素)
于 2013-06-29T21:33:51.433 回答