2013-04-24 31 views
2

我在Windows Phone上遇到了Cordova 2.6.0和jQuery 1.8.1的問題!在PhoneGap上使用Windows Phone上的jQuery .find()

當我做一個$(xmlHttpRequest.responseXML).find("Item")(在iOS/Android的瀏覽器&作品),它是在Windows Phone返回一個空的元素...我需要做一個xmlHttpRequest.responseXML.documentElement並通過兒童瀏覽找到我的元素......

所以這個問題似乎jQuery,但爲什麼?有任何想法嗎 ?

謝謝!

編輯:SOAP信封我所得到的是這樣的(WP8上使用Fiddler看到)

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
    <s:Body> 
    <MethodName xmlns="http://url.com/services/contract"> 
     <MethodNameResult xmlns:a="http://schemas.datacontract.org/2004/07/xxx.yyy.aaa.bb.cc.Result" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
     <a:Item xmlns:b="http://schemas.datacontract.org/2004/07/xxx.yyy.aaa.bb.cc"> 
      <b:Active>Active</b:Active> 
      <b:Comment i:nil="true"/> 
      <b:Company>My company</b:Company> 
      <b:DisplayName>The best company ever</b:DisplayName> 
      <b:Email>[email protected]</b:Email> 
      <b:Fax i:nil="true"/> 
      <b:FirstName>Alx</b:FirstName> 
      <b:GenderTypeId>Male</b:GenderTypeId> 
      ... 

編輯:.find("a:Item")不行!

回答

2

另一種解決方案是使一個新的功能是這樣的:

$.fn.filterNode = function(name) { 
    return this.find('*').filter(function() { 
     return this.nodeName === name; 
    }); 
}; 

並設置名稱爲 「一:項目」!

我不知道爲什麼,但此解決方案適用於WindowsPhone Web App!

1

你不應該這樣解析XML,而是使用jQuery和DataType xml的ajax方法。 我不知道這是否會導致問題,但它可能是。

檢查這個帖子: Can XML be parsed reliably using jQuery's $(responseXML) syntax?

+0

事實上,我的數據是「HTTP/1.1」,它的返回值很好,狀態爲「ParseError」,但它適用於Chrome/iOS/Android 現在使用XML數據類型,它返回成功狀態,但仍然沒有數據Windows Phone – RaspDealer 2013-04-24 15:02:44

+0

Thre responsexml從不以開頭你知道爲什麼嗎? – RaspDealer 2013-04-25 07:31:10

相關問題