gpt4 book ai didi

javascript - 使用 json 数据填充下拉列表

转载 作者:太空宇宙 更新时间:2023-11-04 15:16:06 26 4
gpt4 key购买 nike

我正在尝试使用来自 JSON 页面的数据填充下拉框。

这是我使用的代码:

<script type="text/javascript" charset="utf-8">
$(document).ready(function () {
$.ajax({
url: "json/wcf.svc/GetTax",
dataType: 'json',
data: data
});

$($.parseJSON(data.msg)).map(function () {
return $('<option>').val(this.value).text(this.label);
}).appendTo('#taxList');
});
</script>

这是 json 数据返回的内容:

{"d":"{\"16\":\"hello\",\"17\":\"world\"}"}

我收到“数据未定义”的错误。我是否必须以某种方式告诉 JQ 如何读取 json 数据?

最佳答案

首先,您传递给 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');
}
});
});

您也不需要解析从 ajax 调用返回的数据,因为 jQuery 会自动为您解析 JSON,(应该需要 $.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);
}
});
});

关于javascript - 使用 json 数据填充下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15190698/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com