2014-12-10 53 views
0

我正在从另一个站点(都由同一个人拥有)刮取内容的网站上工作。当它引入链接时,href没有按照我需要的格式进行格式化,所以我试图保留原始值并在它的开头添加一个斜杠。我已经接近,但无法正常工作。目前的格式是href="like-this",但我需要它是href="/like-this"添加到当前属性值

这是我已经试过了差点:

$('.disamb li a').attr('href', function() { 
    return '/' + this.href; 
}); 

返回了整个绝对URL /在开始的时候。所以我试着用each()

$('.disamb li a').each(function() { 
    $(this).attr('href', '/'+this.href); 
}); 

同样的结果。我尝试了其他几种方法,但这两个方法是最接近的。我怎样才能做到这一点,而不是通过替换函数来运行它以将其剥离为我所需要的? (即似乎只是草率)

+1

什么是一个URL的例子,你想要什么 – Rafael 2014-12-10 22:33:03

+1

可能的重复:http://stackoverflow.com/questions/1550901/how-to-get-raw-href-contents-in-javascript – 2014-12-10 22:37:02

回答

1

尝试这种情况:

$('.disamb li a').attr('href', function(i, old) { 
    return '/' + old; 
}); 

的函数接收两个参数,在当前元素的索引,并且该属性的当前值。

当您使用this.href时,您会在浏览器规范化为完整的绝对URL而不是该属性的字符串值后获取该URL。

+0

阿好吧,关于使用'this'很好。这工作正是我需要它。谢谢!我知道我很接近,但是错误的是。 – stinkysGTI 2014-12-10 22:45:05