Opera上的JS函数问题

时间:2011-01-08 14:26:30

标签: javascript jquery opera

function getLast(tagNm) {
    /* This function search the last element
     * that use this tagName */
    var cont = 0;

    $.each(window.wdgList, function (index, value) {
        if (value != undefined) {
            if ($("#" + value).get(0).tagName == tagNm) {
                cont += 1;
            }
        }    
    });

    return cont;
}

并且所有的浏览器 - 包括IE-这个功能都很完美但是Opera没有,这可能是错的。

顺便说一句,错误说明了这一点:

错误是:未捕获异常:TypeError:无法将'document.getElementById(value)'转换为对象

1 个答案:

答案 0 :(得分:2)

很难说提供的信息,但如果由于某些原因Opera未找到您的某个元素,那么.get(0)将为undefined,您将尝试访问{ tagName上的{1}}属性会产生undefined

您应该检查是否首先找到了一个元素。

TypeError

这可以确保在执行$.each(window.wdgList, function (index, value) { if (value != undefined) { var el = $("#" + value).get(0); if ( el && el.tagName == tagNm ) { cont += 1; } } }); 之前有一个元素。