我正在写一个asp.net c#webforms网站
我正在尝试编写一些jquery来实现以下功能:
点击以下链接时
<a title="Relevance" href="www.url.com/search/1/3/5/1/4/0">my link</a>
我想有一些jquery接受href并替换本例中的最后一个数字0虽然我们可以为任何可替换的字符串更改0,这样可以更容易。如果已经完成,我们希望将用户重定向到新的URL。
这在jquery中是否可以轻松实现?任何人都可以指出我在教程的方向上实现类似的东西吗?
答案 0 :(得分:4)
是的,您可以这样做(不检查准确性,但算法应该是合理的):
$('#myLink').click(function()
{
var currentUrl = this.href;
var items = currentUrl.split('/');
items[items.length - 1] = 'myNewValue';
window.location.href = items.join('/');
});
有效地,用斜杠分割,然后替换最后一个元素,将字符串重新加入,并将窗口的href设置为新位置。
答案 1 :(得分:2)
如果您可以将尾随0更改为任何可替换字符串,是否也可以将其更改为String.Empty
?这样,你可以在URL上添加一个值,而不是某种搜索和替换,这更简单。
所以你要从:
开始<a class="search-link" title="Relevance" href="www.url.com/search/1/3/5/1/4/">my link</a>
有点像Tejs所说的那么简单:
$('a.search-link').click(function()
{
var currentUrl = this.href;
currentUrl += 'myNewValue';
window.location.href = currentUrl;
});
答案 2 :(得分:0)
您可以随时执行此操作:http://jsfiddle.net/9Kvfh/
$(function()
{
$('.replaceLastNumber').each(function()
{
$(this).click(function(ev)
{
ev.preventDefault();
var ahref = $(this).attr('href');
var Length = ahref.length;
if (ahref.slice(Length - 1, Length) == '/') //Remove trailing slash
ahref = ahref.slice(0, Length - 2);
else
ahref = ahref.slice(0, Length - 1);
ahref += "SomeNewValue";
window.location.href = ahref;
});
});
});
我觉得它可以用不同的方式做得更好(这个系统有许多失败点,从你改变你的PHP代码到关闭js的那些)。
答案 3 :(得分:0)
一个相当简单的方法是找到最终的斜杠,修剪它的值并用你想要的替换它:
HTML:
<a title="Relevance" id="link1" href="http://www.url.com/search/1/3/5/1/4/0">my link</a>
jQuery的:
$('#link1').click(function(){
// get the url
var url = this.href;
// get the length of the final slash value
var finalSlashLength = url.substring(url.lastIndexOf('/') + 1).length;
// trim the final value off
var newUrl = url.substring(0, url.length - finalSlashLength);
// add the new value
newUrl += 'some new value';
// redirect to the new URL
window.location.href = newUrl;
});
工作样本:
修改强>
由于您在评论中提到标记是动态生成的 - 您可以根据其他选项轻松找到链接。我要找的第一件事就是他们坐在一个普通的容器里,比如div等?查找具有名称,类或ID属性的父级,并将其用作选择器。
例如,如果标记是这样的:
<div id="searchLinks">
<a title="Relevance" href="http://www.url.com/search/1/3/5/1/4/0">my link</a>
<a title="SomeLink" href="http://www.url.com/search/1/3/5/1/4/1">my link</a>
</div>
然后您可以使用以下方式选择它们:
$('div#searchLinks > a').click(function(){....});