我JS/jQuery的的一個非常簡單的片斷我用來提取網頁的某些內容:對JS/jQuery的的Internet Explorer 7和8的對象/語法錯誤
(function (idx) {
var product = $(".product_wrapper img")[idx];
return (product && product.src) ? product.src.match(/([^]+)\\_/)[1] : ""
}(0)).split('_')[1]
作品只是在最細瀏覽器,但IE7 & IE8拋出錯誤。在IE7中,錯誤消息顯示爲[object Error]
,在IE8中顯示爲SyntaxError: Expected '/'
。
有人知道這段代碼有什麼問題嗎?我是否使用MSIE不喜歡的一些語法糖?一直困惑這一個,我很難過。
你調用索引'[1]'對象沒有檢查對象的存在嗎? – aifarfa
嘗試分解邏輯並試圖捕捉至少哪一行是問題所在。而不是使用一個大的'return'語句,把它分成'if/else'語句。然後,將這個立即調用函數的結果存儲到一個變量中。然後,將該字符串拆分爲「_」並將結果存儲在一個新變量中。然後,在訪問'[1]'前檢查該新變量的長度' – Ian