我一直在查看有关此错误的其他帖子,但似乎无法在这种情况下弄明白。我正在尝试保存到localstorage,但是我得到了这个错误并且它说“radio”变量是未定义的,但它似乎不是。我也在使用JQMobile。这是小提琴: http://jsfiddle.net/KpbLD/ 第28行似乎是个问题。
这是功能:
var getSelectedRadio = function(){
var radios = document.forms[0].acoustic;
for(var i=0, j=radios.length; i<j; i++){
if(radios[i].checked) {
console.log(acousticValue);
acousticValue = radios[i].value;
}
}
return acousticValue;
};
答案 0 :(得分:2)
您无法读取undefined
的属性。它通常没有属性(参见http://javascriptweblog.wordpress.com/2010/08/16/understanding-undefined-and-preventing-referenceerrors/)。
因此,在您尝试阅读其length
之前,请确保它未定义。或者它有length
,如
if (obj.length) { your code }
这假定obj
不是undefined
。如果你也不确定,那么:
if (obj && obj.length) { your code }
答案 1 :(得分:1)
document.forms[0].acoustic
不存在,因此未定义。当您将无线电设置为该设备然后尝试查找长度时,它会失败。
您可能需要寻找不同的对象,或者至少在尝试迭代之前检查对象是否存在。
答案 2 :(得分:0)
请检查typeof variable(radios)
。这似乎是对象。如果是数组,则不会出现此错误。