jQuery attr()不支持属性或方法'replace'

svs*_*svs 1 javascript jquery

我有以下脚本在chrome/Firefox中工作正常但在IE中没有.

对象不支持属性或方法'replace'

我需要替换部分网址并在新标签中打开该链接.基本上它运行在一个安全的站点后面,所有外部链接都在前面获取该服务器名称,所以我需要用'http:'替换它

$('a[href*="youtube.com"]').attr("href", $('a[href*="youtube.com"]').replace ("https://serverdomain.com/", "http:"))
Run Code Online (Sandbox Code Playgroud)

只有IE上面的脚本抛出错误.

Ror*_*san 6

首先,您正在尝试replace在jQuery对象上使用,因此您将收到replace is undefined错误.其次,attr()可以使用一个可以更简单地返回替换值的函数.试试这个:

$('a[href*="youtube.com"]').attr("href", function(i, value) {
    return value.replace("https://serverdomain.com/", "http:");
});
Run Code Online (Sandbox Code Playgroud)

我可以想象你也需要改变http:,以http://确保您的网址仍然有效.