我想從一個頁面獲取鏈接。這裏有一個簡單的代碼來獲取來自某個dom元素的所有鏈接。不能在Chrome的控制檯中進行「分割」
var $ = jQuery;
var page = $("#main .entry p");
var rez = [];
for(var i=0; i<page.length;i++) {
var title = $(page[i]).find("a").text();
var info = $(page[i]).text();
var page_url = $(page[i]).find("a").attr("href");
rez.push({
title: title,
page_url: page_url,
info: info
});
}
我在Chrome瀏覽器的控制檯中使用此代碼。
一切正常。 rez
數組已填充,我可以通過諸如console.table(rez)
之類的東西來處理它。
現在我試圖剝奪某些部分從前面的步驟中收集的網址使用split
for(var i=0; i<rez.length;i++) {
console.log(rez[i].page_url); // <- this works
console.log(rez[i].page_url.split("http://something...")[1]); // <- this fails
}
重要提示!我通過複製整個代碼(rez填充代碼和rez迭代以進行拆分)一步完成所有操作。 ,我在控制檯收到此錯誤:
VM7064:18 Uncaught TypeError: Cannot read property 'split' of undefined
at <anonymous>:18:29
爲什麼?
你可以添加'console.log(rez [i] .page_url)的日誌; // < - 此作品'? – Mijago
我會改變它一點,所以不揭示真正的網址,但它會像'http:// something ... like-this.com/blablabla' – kaytrance
你確定數組中的每一項都有一個'page_url財產?如果其中一個不存在,當試圖訪問'res [i] .page_url'時,它將是'undefined',這將解釋你正試圖調用'undefined'的錯誤消息。你可能必須在'if(res [i] .page_url!== undefined){/ * do split * /}'之前測試'page_url'。 –