A-A+
jquery中在ie6下获取href属性值不到解决办法
jquery与ie6不是蛮多的不兼容了,今天在做一个获取A标题的href内容时发现在ie6下无法得到相关值了,下面我们就来看看此问题要怎么解决吧。
想做一个ajax分页的功能,需要获取href属性的值。
html文件,代码如下:
- <div id="ajaxpage">
- <span>47条/10页</span>
- <a href="?page=0" onclick="return false" >第一页</a>
- <a href="?page=2" onclick="return false" >上一页</a>
- <a href="?page=0" onclick="return false" >1</a>
- <a href="?page=1" onclick="return false" >2</a>
- <a href="?page=2" onclick="return false" >3</a>
- <a href="?page=3" onclick="return false" >4</a>
- <a href="?page=4" onclick="return false" >5</a>
- <a href="?page=5" onclick="return false" >6</a>
- <a href="?page=4" onclick="return false" >下一页</a>
- <a href="?page=9" onclick="return false">尾页</a>
- </div>
在常用的流量器中使用jQuery的attr方法就足够了.
var url=$(this).attr('href');
但是在IE6下获取到的不是正确的属性值,是带有域名的URL。这个不是jQuery的bug,是ie的问题,在高版本中不会出现这种情况。
例如: https://www.xiariboke.net ?page=2
解决这个问题就需要做特殊的处理。
解决方案,代码如下:
- var url=$(this).attr('href');
- var base = window.location.href;
- var endIndex=url.lastIndexOf("?");
- if(endIndex){
- base = window.location.href.substring(0, endIndex);
- }
- url = url.replace(base, "");