2013-04-24 58 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

相关问题