我从 json 格式的 ajax 调用中检索了一些用于选择的选项。 我设置的用于在选择中显示新选项(替换现有选项)的代码如下:
success: function (data){
var $select = $('#dettaglio');
$select.html('');
$.each(data, function(key, val){
$select.append('<option id="' + val.id + '">' + val.text +'</option>');
})
}
而json是这样的:
[
{"id":"1","text":"J-Invest Spa"},
{"id":"2","text":"J-A Holding S.r.l."},
{"id":"3","text":"J-Invest Advisory & Servicing S.r.l."},
{"id":"4","text":"J-Invest Immobiliare e Consulenza S.r.l."}
]
运行这段代码会导致一个不容易理解的错误:
TypeError: invalid 'in' operand e
...===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=b(o);var _={}...
jQuery 抛出错误,但这无助于查看我的代码哪里出错了。有什么提示吗?
最佳答案
是的,我从 mysql 获取一个数组并使用 json_encode
对其进行编码。 从服务器接收的数据将始终为 string
类型。您需要解析它以将其转换为 JSON 格式。你能试试这个吗?
success: function(data) {
data = JSON.parse(data);
或者以防万一,如果您使用的是旧版 IE,您也可以尝试:
success: function(data) {
data = $.parseJSON(data);
关于javascript - 循环 json 数组时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32114032/