Javascript 修订href属性

Javascript 修订href属性,javascript,jquery,Javascript,Jquery,所以我有这样一个链接: <a href="http://thissite.org/thisfolder/21/thispage.php"> 我想做的是修改它,但保留其中的一部分,例如: <a href="http://thissite.org/thatfolder/21/thatpage.php"> 这可以通过Jquery或js实现吗 我知道我可以用jquery替换href属性,但我需要保留url(“21”)的一部分,只需更改前后的文本即可 我在想也许可以抓取

所以我有这样一个链接:

<a href="http://thissite.org/thisfolder/21/thispage.php">

我想做的是修改它,但保留其中的一部分,例如:

<a href="http://thissite.org/thatfolder/21/thatpage.php">

这可以通过Jquery或js实现吗

我知道我可以用jquery替换href属性,但我需要保留url(“21”)的一部分,只需更改前后的文本即可

我在想也许可以抓取href属性,把它粘在一个变量中,然后把它拆开,然后以某种方式重新组合起来


对此,我们非常感谢您的帮助。

大致做法如下:

// "elem" is the element, for example elem=document.getElementById('link_to_change')
var url = elem.getAttribute("href").split("/");
url.pop();
url.push("thatpage.php");
elem.setAttribute("href",url.join("/"));

大致的做法是:

// "elem" is the element, for example elem=document.getElementById('link_to_change')
var url = elem.getAttribute("href").split("/");
url.pop();
url.push("thatpage.php");
elem.setAttribute("href",url.join("/"));

您可以在属性设置器函数中调用
replace

$('a').attr('href', function(index, old) {
    return old.replace(/thisfolder/i, 'thatfolder');
});

您可以在属性设置器函数中调用
replace

$('a').attr('href', function(index, old) {
    return old.replace(/thisfolder/i, 'thatfolder');
});

回答得很好。我过去总是将原始属性值存储在变量中,然后将其设置为
$('a').attr('href',oldHref.replace(…);
。我不知道你可以将函数作为第二个参数传入。@maxedison:是的;这是一个非常有用的功能。请注意,如果有多个元素,除非你调用
。每个
。好的,我要么这样做,要么使用一个更具体的选择器。但这只会使你的解决方案更加优雅。我假设这是c几乎任何地方都可以做,不?像
.css()
,等等?@MarkK@maxedison:除了
.data
(甚至在
.append
和friends中)之外的任何地方都可以(即使在
.css()
和friends中)检查文档。答案很好。我过去总是将原始属性值存储在变量中,然后将其设置为
$('a').attr('href',oldref.replace(…);
。我不知道你可以将函数作为第二个参数传入。@maxedison:是的;这是一个非常有用的功能。请注意,如果有多个元素,除非你调用
。每个
。好的,我要么这样做,要么使用一个更具体的选择器。但这只会使你的解决方案更加优雅。我假设这是c几乎在任何地方都可以做,不是吗?比如在
.css()
,等等?@MarkK@maxedison:除了
.data
(甚至在
.append
和friends中)之外的任何地方都可以检查文档。啊,是的。我想你可以
弹出()
所有需要的文档,然后
推送()
把它们放回去,然后开始变得凌乱。啊,是的。我想你可以
弹出()
所有你需要的,然后
推()
把它们放回去,然后开始变得凌乱。