未捕获的类型错误:无法读取属性'长度'的未定义
Uncaught TypeError: Cannot read property 'length' of undefined?
我在这里有一些代码,用于在keyup((事件期间搜索现有名称。它得到了正确的结果。但它显示了CCD_ 1。为什么?
function ajax(firstname)
{
var pathxml;
var answer;
var result;
if(firstname.length== 0)
{
document.getElementById("hh").innerHTML = "";
return;
}
if (window.XMLHttpRequest) {
pathxml = new XMLHttpRequest();
}
else
{
pathxml = new ActiveXObject("Microsoft.XMLHTTP");
}
pathxml.onreadystatechange= function()
{
if (pathxml.readyState==4 && pathxml.status==200)
{
answer = JSON.parse(pathxml.responseText);
document.getElementById("hh").innerHTML = "";
}
for (var i=0; i<=answer.length; i++)
{
result = answer[i].firstname + " " +answer[i].lastname + "'n";
document.getElementById("hh").innerHTML += result;
}
}
pathxml.open("GET","books/ax?firstname=" + firstname, true);
pathxml.send();
}
控制器动作:
def ax
@books =Book.where("firstname like ?","#{params[:firstname]}%")
render json: @books.as_json
end
HTML
<form>
<input type="text" name "search" onkeyup="ajax(this.value);">
</form>
<div id ="hh">
</div>
这基本上意味着你试图在变量上使用一个值尚未定义的属性,但你可能认为它是。
- 您可能将null传递给
ajax(firstname)
,导致firstname
为null或未定义,因此它不包含属性长度 - 如果未满足if条件,则
answer
为null或未定义
如果firstname
为null或未定义,则检查其长度是否为0是不够的。在开始检查lenght
属性并将for
循环移动到if语句内部之前,请确保firstname
不为null或未定义,以确保即使Cannot read property "length" of undefined
0的lenght
属性为null或已定义,也不会尝试访问它。
提供一行错误将有助于判断是哪种情况,记录哪段代码被命中也有助于了解哪条if语句得到了满足。
if (pathxml.readyState==4 && pathxml.status==200)
{
answer = JSON.parse(pathxml.responseText);
document.getElementById("hh").innerHTML = "";
}
for (var i=0; i<=answer.length; i++)
{
result = answer[i].firstname + " " +answer[i].lastname + "'n";
document.getElementById("hh").innerHTML += result;
}
我很确定for
循环应该在if
块内。只是一种预感。
此外,在4"为什么都在一行"中,使用以下CSS:#hh {white-space:pre-wrap}
在您的代码中
if(firstname.length== 0)
在这一行中,您调用的"firstname
"的"长度"可能为null或未定义,即。它没有任何值。所以你得到了这个eror。确保"firsname
"具有值。然后检查。
因为它有时返回的状态与'4'不同。将"for"cyscle置于条件"if"内:(
相关文章:
- 主干中的模型属性未定义
- JavaScript 2d 数组导致“无法读取未定义的属性'未定义'”
- JSON对象属性未定义
- Waypoint的循环,退出循环后属性未定义
- Javascript:错误“无法设置属性”..'未定义”
- 翡翠 - 显示对象属性 - 未定义
- 属性未定义,但控制台.log可以看到它
- JavaScript 对象的属性未定义
- Javascript 对象属性未定义(但属性已设置)
- DOM 元素属性未定义 - jquery / ruby on rails.
- Nodejs JSON 属性未定义
- 错误:窗口打开器的属性未定义
- angular Js:Array.lenght属性未定义
- 正在尝试访问JavaScript对象的属性=未定义
- Marionette属性未定义,请从API获取
- AngularJS作用域属性未定义
- 对象的属性未定义,尽管已指定值
- 为什么我一直收到一个错误,说对象属性未定义
- 对象属性未定义,但我看到它不是
- .map()img src属性未定义