2013-06-30 20 views
8

このコードを使用して、サイトの言語を確認してから、自分のドロップダウンメニューから削除します。このコードはFirefoxでは動作しますが、chromeでは動作しません。他のすべてのスクリプトも停止します。 これはコードです:jqueryの "contains"コードがクロムで機能しない

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"); 
        } 
+1

エラーが発生しましたか? – kennypu

答えて

14

@Quentinが正しいです、あなたは非jQueryオブジェクトでjQueryメソッドを使用しています。標準のJavaScriptライブラリの一部であるindexOfメソッドを使用して修正できます。これはすべてのブラウザでサポートされています。文字列が見つからない場合、indexOfメソッドは-1を返します。あなたのコードは次のようになります:

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

jQueryのではありません。 attrメソッドは、コアJavaScriptであるStringを返します。

文字列のcontains methodはJavaScript 1.9で導入され、Firefoxのみでサポートされています。

indexOfまたは(上記のリンクされた)MDNドキュメントページに記載されているポリフィルを使用してください。

+1

+1がFirefoxで動作する理由の説明 – Basj

関連する問題