8

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

2 回答 2

14

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

if(mylangme.indexOf("/fr/") != -1) {
    mylangme="French";
    $(".subnav li:first-child").css("display","none");
}
于 2013-06-30T07:08:26.303 回答
8

那不是 jQuery。该attr方法返回一个字符串,它是 JavaScript 的核心。

Strings的contains方法是在 JavaScript 1.9 中引入的,仅受 Firefox 支持。

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

于 2013-06-30T06:52:01.530 回答