2010-04-26 37 views
11

我收到這個稍微模糊的錯誤消息:JQuery錯誤:XML過濾器應用於非XML值(函數(E,F){return new(o.fn.init)(E,F);})

XML濾波器被應用到非XML值(函數(E,F){返回新(o.fn.init)(E,F);})當我運行該代碼段

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

arg是服務器的JSON格式響應。

任何人都知道如何解決這個問題?

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

這可以簡化爲:

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

回答

19

4號線有一個.jQuery,你應該刪除的。我得到這個錯誤,當我叫diferent畫面的功能:

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

當我執行的代碼我收到錯誤消息:「錯誤:XML過濾器適用於非XML值」。我用這種方式解決了這個問題:

function anyFunction() { 

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

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

然後彈出窗口中的函數只有在被opener查找時纔會調用。

+0

是的,我只是注意到額外的點(我不知道我在想什麼!)。感謝您的簡化代碼。我越瞭解jQuery,我越喜歡它! – morpheous 2010-04-26 06:41:58

+0

這不僅適用於jQuery。當我的(非jQuery)代碼包含someVar.join('')時,我發現這個線程尋找同樣的錯誤信息,注意開始paren之前的雜散時間。 – enigment 2012-06-10 14:27:27

0

它發生在我身上

+2

使用jquery'ready()'而不是超時。如果1000沒有足夠的時間加載,那麼你就會被洗淨。 – 2011-02-18 16:39:57