javascript - Opera 上的 JS 函数问题

标签 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)' 转换为对象

最佳答案

根据所提供的信息很难说,但如果由于某种原因 Opera 没有找到您的元素之一,那么 .get(0) 将是 undefined,并且您将尝试访问 undefined 上的 tagName 属性,这将导致 TypeError

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

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

这可以确保在执行element.tagName之前有一个元素。

关于javascript - Opera 上的 JS 函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4634309/

相关文章:

javascript - 编写此 promise 链的更好方法

javascript - promise 加入变革 promise 一切

javascript - 挣扎于 jQuery Toggle 函数

javascript - scrollTop 总是返回 0

firefox - FireFox、Chrome、Safari 和 Opera 缓存 SSL/TLS session key 多长时间?

css - 为什么文本缩进在其容器具有 :before/:after pseudo-element? 时不起作用(FX/Opera)

javascript - jQuery 的窗口加载包装器

jquery - 在 JQuery 中旋转图像

jquery - CSS transition-duration 和 jQuery fade 之间的冲突

javascript - Opera 中 document.onload 事件中插件的事件监听器