まず、ajax呼び出しに渡すデータ変数が定義されていません(提供したコードサンプルではありません)。次に、ajax呼び出しが非同期で発生しているため、返されたデータを使用して、つまり、成功コールバック。例:
$(document).ready(function () {
var data = //define here
$.ajax({
url: "json/wcf.svc/GetTax",
dataType: 'json',
data: data, // pass it in here
success: function(data)
{
$(data.msg).map(function () {
return $('<option>').val(this.value).text(this.label);
}).appendTo('#taxList');
}
});
});
また、jQueryが自動的にJSONを解析するため、ajax呼び出しから返されたデータを解析する必要はありません($ .parseJSON(data.msg)が必要です)。
編集
JSONの興味深い形式に基づいており、変更できないと仮定すると、これは機能するはずです(醜いですが)
$(document).ready(function () {
var data = //define here
$.ajax({
url: "json/wcf.svc/GetTax",
dataType: 'json',
data: data, // pass it in here
success: function(data)
{
data = data.d.replace(/{/g, '').replace(/}/g, '').split(',');
var obj = [];
for (var i = 0; i < data.length; i++) {
obj[i] = {
value: data[i].split(':')[0].replace(/"/g, '').replace('\\', ''),
label: data[i].split(':')[1].replace(/"/g, '')
};
}
var htmlToAppend = "";
for (var j = 0; j < obj.length; j++) {
htmlToAppend += '<option value="' +
obj[j].value +
'">' + obj[j].label +
'</option>';
}
$('#taxList').append(htmlToAppend);
}
});
});