如何使用getJSON填充下拉选择框?需提取JSON中bankName与iINNo
如何从JSON数据中提取bankName和iINNo填充下拉选择菜单?
看起来你在尝试从返回的JSON数据里提取bankName和iINNo来填充下拉菜单,但现有代码存在几个小问题导致无法正常工作。让我帮你修正并解释清楚:
首先先看你的原始JSON数据(已格式化方便查看):
{ "status": true, "message": "Request Completed", "data": [ { "id": 1, "activeFlag": 1, "bankName": "Union Bank of India", "details": "Union Bank of India", "iINNo": "607161", "remarks": "", "timestamp": "21/11/2016 16:00:00" }, { "id": 2, "activeFlag": 1, "bankName": "Bank of India", "details": "Bank of India", "iINNo": "508505", "remarks": "", "timestamp": "21/11/2016 16:00:00" } ], "statusCode": 0 }
你的原始代码存在的问题:
- 接口返回的银行数组嵌套在
data字段下,你直接遍历整个响应对象是错误的,应该遍历response.data $.each的回调参数顺序搞反了,正确顺序是(数组, function(索引, 当前元素))- 使用了未定义的
value和index变量,应该用遍历到的当前银行对象来访问字段
修正后的完整代码:
let dropdown = $('#Bank'); dropdown.empty(); dropdown.append('<option selected="true" disabled>Select Bank</option>'); dropdown.prop('selectedIndex', 0); // 注意:这里需要替换成你实际的API接口地址,cors-anywhere只是临时跨域方案 const url = 'http://cors-anywhere.herokuapp.com/your-real-api-url'; // 填充下拉菜单 $.getJSON(url, function (response) { // 遍历返回的银行数组 $.each(response.data, function (index, bankItem) { console.info(`当前索引:${index}`); console.info(`当前银行数据:`, bankItem); // 创建选项,value设为iINNo,显示文本设为bankName dropdown.append($('<option></option>').attr('value', bankItem.iINNo).text(bankItem.bankName)); }); });
关键说明:
- 必须定位到
response.data:你的JSON结构里,实际的银行列表数据是在顶层data属性对应的数组里,这是最容易踩坑的点 - 正确使用
$.each的参数:回调里的bankItem就是每个银行的完整对象,直接用它访问iINNo和bankName即可 - 跨域注意事项:
cors-anywhere仅适合开发测试,生产环境建议后端配置CORS策略,或者使用同域接口避免跨域问题
内容的提问来源于stack exchange,提问作者Hritik R
相关产品推荐
相关产品推荐

