2011-01-08 58 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之前的元素。