基本上,我尝试将中间部分的网址('#')替换为另一部分,并删除网址的第一部分。脚本取代'#'没有问题,但rfuses删除网址的第一部分。我做错了什么,还是有其他解决办法?
html of it
<a class="link_imagelibrary" href="#pink_yellow_flowers.pdf?5612">Download pdf set</a>
条件变为
<a class="imgdownload" href="http://www.picturewall.com/pages/Botanicalhttp://#.com/s/files/1/0183/2687/files/passpink_yellow_flowers.pdf?5612">Download pdf set</a>
jquery的
$(".imgdownload").each(function(){
this.href = this.href.replace('#', 'http://#.com/s/files/1/0183/2687/files/pass');
this.href = this.href.replace('http://www.#.com/pages/botanical', '');
});
它应该是有条件的。判断脚本的其余部分是否正常工作 - 看起来问题就在这里
答案 0 :(得分:0)
href
正在使用this.href
进行扩展,因此您可以:
<a href="#" ...
DOM元素的href
属性得到:
<a href="http://example.com/your/page/wherever.php#" ...
处理此问题的最简单方法是采用不同的方式:
$(".imgdownload").each(function(){
this.href = 'http://cdn.shopify.com/s/files/1/0183/2687/files/pass' +
this.href.split('#').pop();
});
以下是“问题”的演示:
$('a').each(function ea(){
console.log(this.href, this.getAttribute('href'));
});
您会注意到element.getAttribute('href')
确实返回原始href
属性值,而不是属性。您可以使用.replace()
代替您尝试的this.href.replace()
。
答案 1 :(得分:0)
此行未匹配
this.href = this.href.replace('http://www.picturewall.com/pages/botanical', '');
因为它在你的href中不存在:(注意'Botanical'的大小写)
"http://www.picturewall.com/pages/Botanicalhttp://cdn.shopify.com/s/files/1/0183/2687/files/passpink_yellow_flowers.pdf?5612"