2

几天来我一直在与这个问题作斗争:我正在使用 Jquery 从 XML 中提取数据并将其作为标记放置在 Google Maps V3 上,但它没有在 Chrome 和 Opera 上放置任何标记,经过一些调试后我发现问题出在这几行:

  var lat = $(this).find("geo\\:lat").text();      
  var lng = $(this).find("geo\\:long").text();

在 XML 中,我需要删除“:”。

虽然在 FF 和 IE 中,删除“:”的“\”可以完美运行,但在 Chrome 和 Opera 上不起作用..但是如果我转到 XML 并从该字段中删除“:”并使用此行运行代码,它完美运行。

  var lat = $(this).find("geolat").text();      
  var lng = $(this).find("geolong").text();

这是在 Chrome 和 Opera 上复制错误的简化版本 http://dl.dropbox.com/u/15802004/teste.zip 要复制错误,这是注释/取消注释行。

//url: "teste1.xml",     
  url: "teste2.xml",

(and...)        

    //var lat = $(this).find("geo\\:lat").text();            
   //var lng = $(this).find("geo\\:long").text();             
      var lat = $(this).find("geolat").text();      
      var lng = $(this).find("geolong").text();

我很感激任何帮助

4

1 回答 1

0

这是一个已知但仍未修复的错误。

您可以getElementsByTagNameNS()改用(适用于 FF、Chrome 和 Opera)并$.find()作为 IE 的后备。

示例geo:lat

var lat =(( $.browser.msie )
           ? $(this).find('geo\\:lat')
           : $(this.getElementsByTagNameNS('http://www.w3.org/2003/01/geo/wgs84_pos#','lat'))
         ).text();
于 2012-06-30T23:24:06.033 回答