因此,我的代码适用于所有浏览器,但在IE8和IE7中,链接似乎不保留文本。
正在发生的事情的例子:
<a href="http//site.com/">view site</a>
在我的IE代码之后
<a href="http//site.com/">http//site.com/</a>
我做了一些搜索,并记录了多个问题。
我正在使用jQuery 1.4.2,但也尝试了1.10并没有区别。
var replacer = $('.ir a, .tk a');
//apply menu to inner links
$(replacer).each(function () {
//get page param with getmenu
var getmenu = location.href.split("&menu")[1];
if (typeof getmenu === 'undefined') {
getmenu = "&menu=1";
};
var attr = $(this).attr("href");
$(this).attr("href", attr + getmenu);
});
答案 0 :(得分:1)
在报道四年之后,这仍然是最新jQuery(1.11.3)的一个问题。最简单的解决方案是在使用jQuery更改href属性后重置文本。
由于jQuery更改了文本以及href,只需在更改文本之前缓存文本并将文本设置回原来的样式:
// Keep a copy of the text before jQuery messes it up.
var text = $(this).text();
// Change the href.
var attr = $(this).attr("href");
$(this).attr("href", attr + getmenu);
// Set the text back to what it was.
$(this).text(text);
这对所有浏览器版本都非常安全,因此在应用此解决方法之前,您无需检查它是否为IE&lt; 9。