我正试图从一个页面获取链接。这是一个简单的代码,用于获取某些dom元素的所有链接。
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
为什么?
答案 0 :(得分:1)
split()函数用于将字符串拆分为子字符串数组。在split function中作为参数,您必须放置一个分隔符,例如:
"http://something...like-this.com/blablabla".split("/");
这会返回一个数组["http:", "", "something...like-this.com", "blablabla"]
在您的情况下,您尝试按一些文字&#34; http://something ...&#34; 拆分并获取数组的第二个元素 [1 ] 即可。在所有情况下,这将使您返回未定义。