我在按HTML上的按钮时定义了以下操作:
$(document).ready(function() {
$("#query").keydown(function () {
// stuff
$.get(url, function (result) {
console.log(result);
var list = "";
for (var i = 0, l = result["results"].length; i < l; i++) {
list += '<li>' + result["results"][i]["label"] + '</li>';
}
list = "Here are some results: <ul>" + list + "</ul>";
});
});
“result”中的内容是以下形式的JSON数组:
{"results":[{"label":"something"},{"label":"something else"},{"label":"many other ones"}]}
那么,为什么我对length
的引用被解释为对null值属性的引用?
答案 0 :(得分:12)
我相信你得到了一个json输入。您忘了将json转换为实际的Javascript对象。您可以使用以下两种方法之一来完成此操作。
$(document).ready(function() {
$("#query").keydown(function () {
// stuff
$.get(url, function (result) {
result = JSON.parse(result);
console.log(result);
var list = "";
for (var i = 0, l = result["results"].length; i < l; i++) {
list += '<li>' + result["results"][i]["label"] + '</li>';
}
list = "Here are some results: <ul>" + list + "</ul>";
});
或者
$(document).ready(function() {
$("#query").keydown(function () {
// stuff
$.getJSON(url, function (result) {
console.log(result);
var list = "";
for (var i = 0, l = result["results"].length; i < l; i++) {
list += '<li>' + result["results"][i]["label"] + '</li>';
}
list = "Here are some results: <ul>" + list + "</ul>";
});