我正在抓取一个新闻网站,他们还提供了一整篇文章的链接,但是这些链接的href看起来像这样:
/news-features/8/news-headlines/103818/these-pupils-deserve-better所以为了链接,我需要动态添加:
http://www.oldham-chronicle.co.uk因此,整个链接将是:
http://www.oldham-chronicle.co.uk/news-features/8/news-headlines/103818/these-pupils-deserve-better正如你可以假设有超过1篇文章,然而,我需要添加的链接部分是相同的。因此,对于它们中的每一个,我都需要添加它。
目前我有:
$("a").each(function(){
this.href=this.href.replace("http://www.oldham-chronicle.co.uk");
});然而,我的链接看起来像这样:
href="http://localhost/news-features/8/news-headlines/103818/these-pupils-deserve-better"这是错的,怎么解决呢?
发布于 2017-05-31 23:02:49
试试这个:
var base = "http://www.oldham-chronicle.co.uk/";
$('a').each(function(index, element) {
element.href = element.href.replace("http://localhost/", base);
})基本上,这个循环遍历每个a元素,并预置所需的硬编码URL。(如果需要,您也可以在不使用jquery的情况下完成此操作)
编辑:误解了原始问题,从评论中更新以替换开头的url (使用简单的匹配器)
发布于 2017-05-31 23:05:46
这将为你工作
$("a").each(function(){
if ($(this).attr('href') != null) {
var newUrl = $(this).attr('href').replace("http://localhost","http://www.oldham-chronicle.co.uk");
if (newUrl.indexOf("http:")==-1) {newUrl = "http://www.oldham-chronicle.co.uk"+newUrl; }
$(this).attr('href',
);
}
});发布于 2017-05-31 23:14:13
对于使用现代浏览器的读者,您可以只使用the
$('a').each((i, e) => e.hostname = 'www.oldham-chronicle.co.uk');请注意,如链接页面所示,这在Internet Explorer和其他一些浏览器中不起作用。此示例还使用箭头函数,这些函数在某些较旧的浏览器中不受支持。
https://stackoverflow.com/questions/44288083
复制相似问题