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中)之外的任何地方都可以检查文档。啊,是的。我想你可以弹出()
所有需要的文档,然后推送()
把它们放回去,然后开始变得凌乱。啊,是的。我想你可以弹出()
所有你需要的,然后推()
把它们放回去,然后开始变得凌乱。