2013-06-30 49 views
8

我使用此代碼檢查網站上的語言,然後從我的下拉菜單中將其刪除。該代碼適用於Firefox,但無法在Chrome上運行,並停止所有其他腳本。 這是代碼:jquery「contains」code does not work on 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"); 
        } 
+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方法返回一個String,它是核心JavaScript。

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

使用indexOf或上面鏈接的MDN文檔頁面上給出的填充。

+1

+1以解釋爲什麼它可以與Firefox一起使用 – Basj