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メソッドを使用しています。indexOf標準の JavaScript ライブラリの一部であり、すべてのブラウザでサポートされているメソッドを使用して修正できます。文字列が見つからなかった場合、メソッド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 ドキュメント ページに記載されているポリフィルを使用してください。

于 2013-06-30T06:52:01.530 に答える