2013-06-30 2 views
8

Я использую этот код, чтобы проверить, какой язык на сайте, а затем удалить его из раскрывающегося меню. Код работает в Firefox, но не работает на chrome и останавливает все остальные скрипты. Это код:jquery «содержит» код не работает на 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. Вы можете исправить это, используя метод indexOf, который является частью стандартной библиотеки JavaScript, и, таким образом, поддерживается всеми браузерами. Метод indexOf вернет -1, если строка не найдена. Тогда ваш код будет выглядеть так:

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

Это не JQuery. Метод attr возвращает строку, которая является основным JavaScript.

contains method для Strings был представлен в JavaScript 1.9 и поддерживается только Firefox.

Используйте indexOf или полипол, указанные на странице документации MDN (выше ссылки).

+1

+1 для объяснения причин, почему он работает с Firefox – Basj

Смежные вопросы