jquery 'find' не может найти gx: Track - PullRequest
0 голосов
/ 27 мая 2011

Моя проблема в функции поиска 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>
        ..
        .

как вы знаете, я могу получить доступ к DOM, используя find,

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

это работает правильно, возвращает массив объектов.

но

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

это не работает, возвращает пустой объект jquery.

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

тоже не работает.

кто-нибудь, кто знает причину и решение?

Ответы [ 3 ]

1 голос
/ 27 мая 2011

бежать : с \\

Как это:

$(data).find('gx\\:Track')
1 голос
/ 27 мая 2011

Я подозреваю, что он видит часть строки :track как псевдо-селектор jQuery (например, :first-child и т. Д.).

Вы можете выйти из :, поставив перед ним \\, чтобы ваш селектор стал:

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

http://api.jquery.com/category/selectors/ для объяснения символов управляемого селектора.

0 голосов
/ 27 мая 2011

Я считаю, что селекторы jQuery не распознают пространства имен XML.

Вы можете попробовать это: $(data).find('gx\:coord'), но что-то говорит мне, что это тоже не сработает.

...