jQuery“包含”代码在Chrome上不起作用

jquery "contains" code doesn't work on chrome

本文关键字:Chrome 不起作用 代码 包含 jQuery      更新时间:2023-09-26

我使用此代码检查网站上的语言,然后将其从我的下拉菜单中删除。该代码在Firefox中工作,但在chrome上无法工作,并且也会停止所有其他脚本。这是代码:

var mylangme = $(location).attr('href');
if(mylangme.contains("/fr/")){
    mylangme="French";
    $(".subnav li:first-child").css("display","none");
                    }
if(mylangme.contains("/nl/")){
    mylangme="Dutch";
    $(".subnav li:nth-of-type(2)").css("display","none");
                    }
if(mylangme.contains("/ru/")){
        mylangme="Russian";
        $(".subnav li:nth-of-type(3)").css("display","none");
                    }
if(mylangme.contains("/en/")){
        mylangme="English";
        $(".subnav li:last-child").css("display","none");
                    }   

@Quentin是正确的,你在非jQuery对象上使用jQuery方法。您可以使用 indexOf 方法修复它,该方法是标准 JavaScript 库的一部分,因此所有浏览器都支持这种方法。如果未找到字符串,indexOf 方法将返回 -1。然后,您的代码将如下所示:

if(mylangme.indexOf("/fr/") != -1) {
    mylangme="French";
    $(".subnav li:first-child").css("display","none");
}

那不是jQuery。attr 方法返回一个 String,它是核心 JavaScript。

字符串的contains方法是在 JavaScript 1.9 中引入的,只有 Firefox 支持。

使用 indexOf 或(上面链接的(MDN 文档页面上给出的填充代码。