首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >document.forms[i][j].type出现问题,返回未定义

document.forms[i][j].type出现问题,返回未定义
EN

Stack Overflow用户
提问于 2011-05-28 08:15:31
回答 2查看 667关注 0票数 1

我正在写一个firefox插件。下面是引文的一部分

代码语言:javascript
复制
var cForm = ''; 
var doc = document;
for (i = 0; i < doc.forms.length; i++)
{
    var a = doc.forms[i].name + "";
    if ( a.search("itsMe") != -1)
    {
        cForm = i;
    }
}

//

代码语言:javascript
复制
if ( cForm != '' )
{
    for (i = 0; i < doc.forms[cForm].length; i++)
    {
        var sTotal = 'doc.forms[' + cForm + '][' + i +'].type';             
        if ( eval(sTotal) == "button")
        {
            return sTotal ;
        } 

    }
}

第一个代码运行良好。第二个代码显示如下错误:"doc.forms is undefined“

怎么了??救命..。

EN

回答 2

Stack Overflow用户

发布于 2011-05-28 08:23:47

问题可能出在您对eval的使用上;它可能不知道doc,因为它不在范围之内。通常,您应该尽量避免使用eval。在这种情况下,您真的不需要它,所以尝试这样做:

代码语言:javascript
复制
if (i.length && typeof(cForm) != "undefined")
{
    cForm = parseInt(cForm);
    for (i = 0; i < document.forms[cForm].length; i++)
    {
        if (document.forms[cForm][i].type == "button")
        {
            return sTotal ;
        } 

    }
}
票数 0
EN

Stack Overflow用户

发布于 2011-05-28 12:15:23

比方说,doc.forms[0][0]可以是一个文本区,这将使它没有.type

另外,你为什么要使用eval

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6158808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档