我有:
<a id="id1" href="href1?key=value">First link</a>
<a id="id2" href="href2?key=value">Second link</a>
单击第一个链接时,我需要使用JQuery将第二个链接的href更改为“href2”(反之亦然)。基本上我需要重置网址,以便没有查询字符串:
点击“第一个链接”时,第二个链接必须
<a id="id2" href="href2">Second link</a>
点击“第二个链接”时,第一个链接必须
<a id="id1" href="href1">First link</a>
修改
我正在使用an Ajax Tabs Content Script。在每个标签中,我都有一个搜索表单。由于某些原因,我必须通过GET传递搜索的值。它有效,但如果我更改标签,例如从选项卡1到选项卡2,当返回选项卡1时,将重复搜索。因此,我正在搜索通过单击其他选项卡“重置”URL(即删除查询字符串)的方法。
我会尝试你的建议。
答案 0 :(得分:0)
这是你在找什么?
$("#id1").click(function(){
$("#id2").attr("href") = "new_url";
});
$("#id2").click(function(){
$("#id1").attr("href") = "new_url";
});
答案 1 :(得分:0)
我认为,两个链接都不会触发完整的回发(即完全刷新页面),因为那样,在客户端使用javascript进行此操作是没有意义的。如果页面完全刷新,则需要在服务器上执行此操作。
编辑:我在你的例子中看到你的href有不同的格式而不是“?”你正在使用“/”,这可能会带来问题,因为无法预测URL中可以存在多少“/”。但是,如果您知道参数位于 LAST “/”之后,那么您可以使用它而不是这样
$('#id1').click(function (e) {
e.preventDefault(); //To stop the postback (if needed)
// Grab the url
var url = $('#id2').attr('href');
//Grab the substring from the start to the last index of "/"
url = url.substring(0,url.lastIndexOf('/'));
//Get first part of url
$('#id2').attr('href', url);
});
这里的网址是'?'
$('#id1').click(function (e) {
e.preventDefault(); //To stop the postback (if needed)
// Split the href with '?' to get url without parameters
var url = $('#id2').attr('href').split('?');
//Get first part of url
$('#id2').attr('href',url[0]);
});
选择适合你的人,并为第二个链接做同样的事情
答案 2 :(得分:0)
尝试这样做 - :
$("input[id^='id']").each(function(){
var href_value = $(this).attr("href");
$(this).attr("href") = href_value;
});