1つのページからリンクを取得しようとしています。ここでは、特定の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
}
重要な注意を使用して、前のステップで収集したURLから特定の部分を除去しようとしています!私はすべてのコードをコピーすることで(コードを作成し、分割を行うためにrezを反復することによって)、すべてを1つのステップで実行しています。 そして、私は、コンソールでこのエラーを取得しています:
VM7064:18 Uncaught TypeError: Cannot read property 'split' of undefined
at <anonymous>:18:29
なぜ?
'console.log(rez [i] .page_url)のログを追加できますか? // < - this works'? – Mijago
本当のURLを明らかにするのではなく少し変更しますが、 'http:// something ... like-this.com/blablabla'のようになります – kaytrance
本当に配列のすべての項目に' page_url '財産? 'res [i] .page_url'にアクセスしようとすると' undefined'となり、 'undefined'を' split'と呼んでいるというエラーメッセージを説明します。 if(res [i] .page_url!== undefined){/ * do split * /} 'の前に' page_url'をテストしなければならないかもしれません。 –