2013-06-30 29 views
8

Tôi đang sử dụng mã này để kiểm tra xem ngôn ngữ nào trên trang web và sau đó xóa nó khỏi trình đơn thả xuống của tôi. Mã hoạt động trong Firefox nhưng không hoạt động được trên Chrome và cũng dừng tất cả các tập lệnh khác. Đây là mã:jquery "contains" code không hoạt động trên 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

bất kỳ lỗi nào xuất hiện? – kennypu

Trả lời

14

@Quentin đúng, bạn đang sử dụng một phương thức jQuery trên đối tượng không phải jQuery. Bạn có thể sửa lỗi bằng cách sử dụng phương thức indexOf là một phần của thư viện JavaScript chuẩn và do đó tất cả các trình duyệt đều hỗ trợ. Phương thức indexOf sẽ trả lại -1 nếu không tìm thấy chuỗi. Mã của bạn sẽ trông giống như sau:

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

Đó không phải là jQuery. Phương thức attr trả về một String, là mã JavaScript lõi.

contains method cho chuỗi đã được giới thiệu trong JavaScript 1.9 và chỉ được Firefox hỗ trợ.

Sử dụng indexOf hoặc polyfill được cung cấp trên trang tài liệu MDN (đã liên kết ở trên).

+1

+1 để giải thích lý do tại sao nó hoạt động với Firefox – Basj

Các vấn đề liên quan