jquery“包含”代码不适用于chrome

时间:2013-06-30 06:48:04

标签: javascript jquery

我正在使用此代码检查网站上的语言,然后将其从我的下拉菜单中删除。该代码适用于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");
                    }   

2 个答案:

答案 0 :(得分:14)

@Quentin是对的,你在非jQuery对象上使用jQuery方法。您可以使用属于标准JavaScript库的indexOf方法来修复它,因此所有浏览器都支持此方法。如果找不到字符串,indexOf方法将返回-1。您的代码将如下所示:

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

答案 1 :(得分:8)

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

Strings的contains method是在JavaScript 1.9中引入的,只有Firefox支持。

使用indexOf或(上面链接的)MDN文档页面上给出的polyfill。