做不到"拆分"在chrome的控制台中

时间:2017-01-12 07:52:08

标签: javascript google-chrome

我正试图从一个页面获取链接。这是一个简单的代码,用于获取某些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

为什么?

1 个答案:

答案 0 :(得分:1)

split()函数用于将字符串拆分为子字符串数组。在split function中作为参数,您必须放置一个分隔符,例如:

"http://something...like-this.com/blablabla".split("/");

这会返回一个数组["http:", "", "something...like-this.com", "blablabla"]

在您的情况下,您尝试按一些文字&#34; http://something ...&#34; 拆分并获取数组的第二个元素 [1 ] 即可。在所有情况下,这将使您返回未定义。