jquery'find'找不到gx:Track

时间:2011-05-27 03:31:19

标签: jquery kml

我的问题是Jquery查找功能。

这是我的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')

也行不通。

谁知道原因和解决方案?

3 个答案:

答案 0 :(得分:1)

使用:

转义\\

像这样:

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

答案 1 :(得分:1)

我怀疑是它看到字符串的:track部分是jQuery伪选择器(如:first-child等)。

您可以在:之前放置一个\\,以便您的选择器变为:

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

http://api.jquery.com/category/selectors/用于解释受控制的选择器字符。

答案 2 :(得分:-1)

我认为jQuery选择器无法识别XML命名空间。

你可以试试这个:$(data).find('gx\:coord')但有些东西告诉我它也不会起作用。