在我的一个项目中,我使用API从其他网站获取数据,但是为了得到所有数据,我需要用两个不同的变量来编写8个相同代码的块。显然我想定义函数并使用它。
函数有两个参数,一个是对象,另一个是id。在函数内部,我遍历对象以使用object.length获取我需要的所有数据。循环在函数定义中执行,我在控制台中出现Uncaught TypeError: Cannot read property 'length' of undefined
错误。
这是我的代码:
function listAll(objectProp, destination) {
for (var i = 0; objectProp.length > i; i++ ) {
var option = document.createElement("option");
var value = document.createTextNode(objectProp.name);
option.appendChild(value);
document.getElementById(destination).appendChild(option);
}
}
我一直在寻找解决方案,但我找不到同样的问题。任何人都可以向我解释为什么会这样吗?
谢谢!
更新 代码应该是这样的。
function listAll(objectProp, destination) {
if ( typeof(objectProp) != 'undefined' ) {
for (var i = 0; objectProp.length > i; i++ ) {
var option = document.createElement("option");
var value = document.createTextNode(objectProp[i].name);
option.appendChild(value);
document.getElementById(destination).appendChild(option);
}
}
}
感谢您的帮助!
答案 0 :(得分:0)
使用.length
无法在JavaScript中获取对象的长度。您需要将数据存储在数组中或使用此解决方案:Length of a JavaScript object