我在JQuery中使用$(this).attr('href')
来读取href =“”属性中的字符串。
我有这样的链接:
<a href="1"></a>
<a href="2"></a>
<a href="3"></a>
Firefox和Chrome会正确地返回代码。 IE返回给我:http://127.0.0.1/1
我该怎么办?
答案 0 :(得分:3)
访问本机属性时,无需使用attr
函数。您可以直接使用anchor元素的属性来获取路径名(即没有域或查询字符串的HREF)
基本上:this.pathname
浏览器之间存在一些不一致(有些会在pathname
中显示前导斜线,而其他则不会)。要解决这个问题,只需摆脱任何潜在的主要冲突:
this.pathname.replace(/^\//,'')
一个工作示例:http://jsfiddle.net/jonathon/3ET6p/
即使您选择其他答案,我建议您在对象上使用原生.href
。
这是对此的额外说明。我启动了一个IE6的VM,一切都很好:))
答案 1 :(得分:1)
尝试通过DOM元素:
$(this)[0].href;
或$(this)[0].getAttribute("href");
如果结果仍然相同,我建议您使用不以数字开头的内容。
答案 2 :(得分:0)
我建议检查正在使用的浏览器。如果是IE,请检查当前域是否为“127.0.0.1”。如果不是,请按@Saul的建议做。