2011-05-27 52 views
0

我的問題是JQuery查找功能。jquery'find'找不到gx:跟蹤

這是我的KML代碼〜

. 
.. 
... 
<Placemark> 
    <name>Happy Dinner 2011-05-21 16:57</name> 
    <styleUrl>#msn_track-0</styleUrl> 
    <gx:Track> 
     <when>2011-05-21T07:57:44Z</when> 
     <when>2011-05-21T07:58:29Z</when> 
     <when>2011-05-21T07:59:12Z</when> 
     <when>2011-05-21T07:59:41Z</when> 
     <when>2011-05-21T07:59:53Z</when> 
     <when>2011-05-21T08:00:29Z</when> 
     ... 
     <gx:coord>127.03971 37.51795 99.59999999999999</gx:coord> 
     <gx:coord>127.03998 37.51816 101.8</gx:coord> 
     <gx:coord>127.03958 37.51816 106.8</gx:coord> 
     .. 
     . 

,你知道我可以使用find訪問DOM,

//data is the xml(kml) file loaded. 
$(data).find('Placemark') 

這個工作正常,返回對象數組。

但是,

$(data).find('gx:Track') 

這不工作,返回空的jQuery對象。

$(data).find('gx:coord') 

也不起作用。

任何人知道原因和解決方案?

回答

1

我懷疑的是,它看到的字符串作爲一個jQuery僞選擇的:track部分(如:first-child等)。

您可以通過將一個\\才逃脫:,所以你的選擇將成爲:

$(data).find('gx\\:Track') 

http://api.jquery.com/category/selectors/用於控制選擇字符的解釋。

-1

我相信jQuery選擇不承認XML命名空間。

你可以試試這個:$(data).find('gx\:coord'),但直覺告訴我,它不會工作。

1

逃脫:\\

像這樣:

$(data).find('gx\\:Track')