【问题标题】:Can't change url in href with jquery无法使用jquery更改href中的url
【发布时间】:2014-05-28 04:35:41
【问题描述】:

基本上,我正在尝试将中间的一部分 url ('#') 替换为另一个,并删除 url 的第一部分。脚本替换 '#' 没有问题,但 rfuse 会删除 url 的第一部分。我做错了什么,还是有其他解决方案?

它的html

<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', '');
}); 

它应该在条件下发生。判断脚本的其余部分在该条件下工作正常 - 看起来问题出在此处

【问题讨论】:

  • 你将这个应用到什么样的 URL 上?
  • 你说的什么样的url是什么意思?
  • @user3638287 显示您尝试替换的实际网址以及您的预期结果。
  • 我的意思是我需要知道你正在使用什么 URL。无论如何,请尝试检查标记为重复的问题,看看是否有效。如果没有,您应该编辑您的问题,使其更具体一点,显示问题所在,以及为什么重复的问题没有回答。
  • 在帖子中添加了网址

标签: javascript jquery


【解决方案1】:

此行不匹配

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"

【讨论】:

  • 我会被诅咒的......这么愚蠢的错误......非常感谢!
【解决方案2】:

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'));
});

http://jsfiddle.net/Gtr8V/

您会注意到element.getAttribute('href') 确实返回原始href 属性值,而不是属性。您可以将其与 .replace() 一起使用,而不是您尝试使用的 this.href.replace()

【讨论】:

  • 问题是,# 将 url 拆分为 2。我需要保留 # 之后的部分(例如 pink_yellow_flowers.pdf?5612),并且此解决方案将编辑整个 url。
  • 除非我感到困惑,否则查看您问题中的代码,您正在执行两个步骤,其中第一个导致需要第二个(删除第一个 URL)。我的建议是做一件事(而不是两件事)来代替在第二步中删除第一个 URL 的需要。
猜你喜欢
  • 2011-09-26
  • 2013-09-06
  • 2013-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-30
  • 1970-01-01
相关资源
最近更新 更多