2011-01-08 56 views
0
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并没有这样做,那可能是错误的。Opera上的JS功能存在问题

BTW,错误这样说:

的错误是这样的:未捕获的异常:类型错误:无法转换“的document.getElementById(值)”反对

+0

什么是`window.wdgList`?在Opera和Chrome中未定义(至少对我而言)。 – 2011-01-08 14:31:27

+1

你得到的实际错误是什么? - Opera有一个很好的堆栈跟踪功能,应该指出确切的错误在哪里。 – scunliffe 2011-01-08 14:31:50

回答

2

硬盘所提供的信息说,但如果由于某种原因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之前的元素。