难道真的是这样吗? attr("href") 与所有其他浏览器相比,IE7 中的链接命令处理方式非常不同?

假设我有一个页面 http://example.com/page.html 我有这个 HTML:

<a href="#someAnchor" class="lnkTest">Link text</a>

和这个 jQuery:

var strHref = $(".lnkTest").attr("href");

那么在 IE7 中的值 strHref 变量将是 "http://example.com/page.htm#someAnchor" 但在其他浏览器中它会是 "#someAnchor".

我相信最后提到的情况是最正确的,那么这只是 IE7 是一个坏孩子的情况还是 jQuery 中的一个错误?

有帮助吗?

解决方案

这是肯定的的jQuery中的错误,而是浏览器的.getAttribute('href')不一致的实现 - 我建议只使用.get(0).href一致性

好像你可以使用.get(0).getAttribute('href', 2)访问IE和Mozilla的属性文字,如果你不想要的绝对URI。不过请注意在Opera这是不行的,我还没有在Safari /铬/别的测试。

您也可以去掉上“#”域或分裂为.get(0).href和使用该阵列的第二部分假设它甚至包含“#”(检查.length)。

http://www.glennjones.net/Post/809/getAttributehrefbug.htm

scroll top