質問する
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('');
ここに記載されているように、2番目の解決策の方が優れているようです: 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 に答える