Javascript 无法读取未定义的属性“length”

Javascript 无法读取未定义的属性“length”,javascript,jquery-mobile,Javascript,Jquery Mobile,我一直在看关于这个错误的其他帖子,但在这种情况下,我似乎无法理解。我试图保存到localstorage,但是我得到了这个错误,它说无线电变量未定义,但似乎没有。我也在使用JQMobile。这是小提琴: 第28行似乎是问题所在 下面是函数: var getSelectedRadio = function(){ var radios = document.forms[0].acoustic; for(var i=0, j=radios.length; i<j;

我一直在看关于这个错误的其他帖子,但在这种情况下,我似乎无法理解。我试图保存到localstorage,但是我得到了这个错误,它说无线电变量未定义,但似乎没有。我也在使用JQMobile。这是小提琴:
第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;

};

无法读取未定义的属性。它没有属性,通常请参见

因此,在您尝试读取其长度之前,请确保它不是未定义的。或者它有一个长度,比如

这假定obj不是未定义的。如果您对此也不确定,那么:

if (obj && obj.length) { your code }

无法读取未定义的属性。它没有属性,通常请参见

因此,在您尝试读取其长度之前,请确保它不是未定义的。或者它有一个长度,比如

这假定obj不是未定义的。如果您对此也不确定,那么:

if (obj && obj.length) { your code }
不存在,因此未定义。当您将收音机设置为该值,然后尝试查找长度时,将失败

您可能需要寻找不同的对象,或者至少在尝试迭代之前检查对象是否存在

不存在,因此未定义。当您将收音机设置为该值,然后尝试查找长度时,将失败


您可能需要查找其他对象,或者至少在尝试对其进行迭代之前检查对象是否存在。

请检查variableradios的类型。这似乎是个问题。如果是阵列,则不会出现此错误。

请检查可变收音机的类型。这似乎是个问题。如果是数组,则不会出现此错误。

第28行似乎是问题所在。。。不,问题是收音机未定义。您不能从document.forms[0]中获取任何内容。acoustic@SteveChambersgetElementById仅位于文档对象行28上似乎是问题所在。。。不,问题是收音机未定义。您不能从document.forms[0]中获取任何内容。acoustic@SteveChambersgetElementById仅在文档对象上。问题是,变量radios未定义。这意味着它不是对象,也不是数组,而是未定义的。另外,您的语法应该是typeof radios。问题是,变量radios未定义。这意味着它不是对象,也不是数组,而是未定义的。另外,您的语法应该是Radios类型这解决了我的问题这解决了我的问题
document.forms[0].acoustic