【问题标题】:jquery 'find' cant find gx:Trackjquery 'find' 找不到 gx:Track
【发布时间】:2011-05-27 03:31:19
【问题描述】:

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

也不行。

谁知道原因和解决办法?

【问题讨论】:

    标签: jquery kml


    【解决方案1】:

    我怀疑它会将字符串的:track 部分视为jQuery 伪选择器(如:first-child 等)。

    您可以通过在 : 前面放置 \\ 来转义 :,因此您的选择器将变为:

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

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

    【讨论】:

      【解决方案2】:

      \\转义:

      像这样:

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

      【讨论】:

        【解决方案3】:

        我相信 jQuery 选择器不能识别 XML 命名空间。

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

        【讨论】:

          猜你喜欢
          • 2012-11-27
          • 1970-01-01
          • 1970-01-01
          • 2011-08-30
          • 1970-01-01
          • 2021-08-09
          • 2020-07-30
          • 2016-01-19
          • 2012-08-07
          相关资源
          最近更新 更多