2010-04-26 21 views
11

Tôi nhận được thông báo lỗi khó hiểu này:Lỗi JQuery: Bộ lọc XML được áp dụng cho giá trị không phải XML (hàm (E, F) {return new (o.fn.init) (E, F);})

lọc XML được áp dụng cho giá trị phi XML (function (E, F) {return mới (o.fn.init) (E, F);})

khi tôi chạy đoạn mã này

function justDoIt(arg){ 
    msg = arg.msg; 
    if(arg.ok) 
     jQuery.(".action-button").each(function(idx,el){jQuery(this).removeClass('enabled');}); 
} 

arg là biểu mẫu phản hồi dạng JSON của máy chủ.

Bất kỳ ai biết cách sửa lỗi này?

Trả lời

19

Trên dòng thứ 4 có một . sau jQuery mà bạn nên loại bỏ:

if(arg.ok) { 
    $('.action-button').each(function() { 
     $(this).removeClass('enabled'); 
    }); 
} 

Mà có thể được đơn giản hóa để:

if(arg.ok) { 
    $('.action-button').removeClass('enabled'); 
} 
+0

Vâng, tôi mới nhận thấy dấu chấm phụ (Tôi không biết mình đang nghĩ cái quái gì!). Cảm ơn bạn đã viết mã đơn giản. Tôi càng tìm hiểu về jQuery, tôi càng yêu thích nó! – morpheous

+0

Điều này không chỉ áp dụng cho jQuery. Tôi tìm thấy chủ đề này tìm kiếm cùng một thông báo lỗi, khi mã (không phải jQuery) của tôi chứa someVar.join. ('') - lưu ý khoảng thời gian đi lạc trước dấu ngoặc mở. – enigment

0

Nó xảy ra với tôi quá. Tôi nhận được lỗi này khi tôi gọi một chức năng của một cửa sổ khác nhau:

function anyFunction() { 
    popup=window.open("..."); 
    popup.someFunction(...); 
} 

Khi tôi thực thi mã Tôi nhận được thông báo lỗi: "lỗi: bộ lọc xml được áp dụng cho giá trị không xml". Tôi đã giải quyết vấn đề này theo cách này:

function anyFunction() { 

    popup=window.open("..."); 

    if(popup.someFunction) { 
     popup.someFunction(...); 
    } else { 
     setTimeout("anyFunction()", 1000); 
    } 
} 

Sau đó, chức năng trong cửa sổ bật lên chỉ được gọi khi được tìm thấy bởi công cụ mở.

+2

Sử dụng jquery 'ready()' thay vì hết thời gian chờ. Nếu 1000 là không đủ thời gian để tải sau đó bạn đang hosed. –

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