JQuery如何在单击a标签时修改url

sa0811 2010-09-18 06:50:05
小弟初学JQuery,不是很明白..希望大虾指点.

具体是想实现这样的:

<table id="t1">
<a href="1.php">测试</a>
</table>

网页中有一个table,id为t1。想让大家在点击t1中的任何a标签的时候,比如例子中的1.php,JQuery会去判断访客哪里有没有cookies("srv"),如果没有,赋值为"7",有的话直接读取.
然后修改点击里的那个a链接到的地址,比如例子中是1.php,会修改为cookies值+1.php,即如果为空则是"7/1.php"

当然t1外的a标签不被控制...

由于初学,自己试了好久没有写出来,希望大大们指点,谢谢了~
...全文
1338 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ruichi 2010-09-24
  • 打赏
  • 举报
回复
用jquery的框架吧,比较简单一点...........
hoojo 2010-09-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sa0811 的回复:]

谢谢2楼了,可能我表达有点不清楚,后来我把
var newHref = (parseInt(srvVal)+1) + ".php"; 改成 var newHref = srvVal + "/" + oldHref; 就好了..

不过现在还有的问题是,我用新窗口打开目标页面后,原页面不关闭,那样的话第二次打开就继续给前面加"7/",也就是变成了"7/7/1.php",不知道这个要怎么解……
[/Quote]

那就需要判断下当前链接中有没有7/,如果有就不加,木有就加上
$("#t1 a").click(function () {
var link = $(this).attr("href");
var temp = getCookies("srv"+ link);//不同的链接设置不同的cookie的key这样就可以唯一,方便判断
if ((temp == "" || !temp) && link.indexOf("7/") == -1) {
$(this).attr("href", "7/"+ link);
setCookies("srv"+ link, link);
} else {
$(this).attr("href", "+" + link);
}

});
sa0811 2010-09-18
  • 打赏
  • 举报
回复
谢谢2楼了,可能我表达有点不清楚,后来我把
var newHref = (parseInt(srvVal)+1) + ".php"; 改成 var newHref = srvVal + "/" + oldHref; 就好了..

不过现在还有的问题是,我用新窗口打开目标页面后,原页面不关闭,那样的话第二次打开就继续给前面加"7/",也就是变成了"7/7/1.php",不知道这个要怎么解决.
sa0811 2010-09-18
  • 打赏
  • 举报
回复
谢谢2楼的指点..
不过我试验了以后第一次是可以的,跳转到7/1.php
但是为什么第二次就跳转到 8.php?
superman1986 2010-09-18
  • 打赏
  • 举报
回复
将 $(this).attr("href")= "7/" + oldHref;
改为:var newHref = "7/" + oldHref;
$(this).attr("href",newHref);

superman1986 2010-09-18
  • 打赏
  • 举报
回复

$("#t1 a").live("click",function(){
var c_name="srv";
var srvVal = getCookie(c_name);
var oldHref = $(this).attr("href");
if(srvVal ==""){
setCookie(c_name,7,10);

$(this).attr("href")= "7/" + oldHref;
}else{
var newHref = (parseInt(srvVal)+1) + ".php";
$(this).attr("href",newHref);
}
})
function getCookie(c_name)
{
if (document.cookie.length>0)
{
c_start=document.cookie.indexOf(c_name + "=")
if (c_start!=-1)
{
c_start=c_start + c_name.length+1
c_end=document.cookie.indexOf(";",c_start)
if (c_end==-1) c_end=document.cookie.length
return unescape(document.cookie.substring(c_start,c_end))
}
}
return ""
}
//expiredays:过期天数
function setCookie(c_name,value,expiredays)
{
var exdate=new Date()
exdate.setDate(exdate.getDate()+expiredays)
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
}


引用了w3school的部分代码。。。
没测试过,楼主可以试下。

52,780

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧