我有一个带有数组属性的javascript类。我在对象上创建了一个方法,以从该数组中返回特定对象。然而,它没有像我预期的那样工作。我没有在任何浏览器中收到错误但是当我尝试将它放入jsfiddle时我得到一个错误说
错误: 第5行的问题18:无法设置未定义的属性“first” 隐含的全球:第1页
我不知道这意味着什么,但它指的是这一行
for (var i = 0; i < obj.containerDivs.length; i++) {
这是完整的代码。谁能告诉我我做错了什么?为什么GetContainerDiv函数不会返回dv,但是后来当我在没有函数的情况下遍历元素时它工作正常。感谢。
Page = function() {
this.containerDivs = ["div1", "div2", "div3"];
this.GetContainerDiv = function(obj, divId) {
for (var i = 0; i < obj.containerDivs.length; i++) {
if (obj.containerDivs[i] == divId) return d;
}
return null;
}
}
var page = new Page();
var dv = page.GetContainerDiv(page, "div1");
console.log(dv);
for (var i = 0; i < page.containerDivs.length; i++) {
if (page.containerDivs[i] == "div1") console.log(page.containerDivs[i]);
}
答案 0 :(得分:1)
我在脚本中发现的唯一问题是使用
行if (obj.containerDivs[i] == divId) return d;
其中 d 是未定义的变量。我相信你打算返回 divId 。
将该声明更改为 if(obj.containerDivs [i] == divId)return divId;
答案 1 :(得分:1)
this.GetContainerDiv = function(obj,divId){ for(var i = 0; i&lt; obj.containerDivs.length; i ++){
if (obj.containerDivs[i] == divId)
return d; // D IS NOT DEFINED
}
return null;
}