“未捕获的TypeError:在jQuery中无法读取null的属性’length’
我在按下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 += '' + result["results"][i]["label"] + ' '; } list = "Here are some results: " + list + "
"; }); });
到达“result”的是以下forms的JSON数组:
{"results":[{"label":"something"},{"label":"something else"},{"label":"many other ones"}]}
那么,为什么我对length
的引用被解释为对null值属性的引用?
我相信你得到了一个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 += '' + result["results"][i]["label"] + ' '; } list = "Here are some results: " + list + "
"; });
要么
$(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 += '' + result["results"][i]["label"] + ' '; } list = "Here are some results: " + list + "
"; });