0

ajax および xml パーサー

$.ajax({
    url: 'http://geocode-maps.yandex.ru/1.x/?geocode=43.2491,76.9198&sco=latlong&kind=house&results=7',//here get the XML wirh all adresses and coords
    type: 'GET',
    dataType: 'html',
    success: function(d){
        $("#message").html('');
        var coord = $(d).find('pos').text();
        $(d).find('name').each(function(){
            $('#message').prepend("<div class='addresses' onClick='insert_adress($(this).text());'>"+$(this).text()+" и "+coord+"</div>"); //here it write to a box                
        })
    }
});

これがoj jssfidleの例です

4

5 に答える 5

0

これを試して、

var coord = $(d).find('pos').text();

完全なコード

$.ajax({
    url: 'http://geocode-maps.yandex.ru/1.x/?geocode=43.2491,76.9198&sco=latlong&kind=house&results=7',
    type: 'GET',
    dataType: 'html',
    success: function(d){
        $("#message").html('');
        var coord = $(d).find('pos').text();// pos text not its next element's text
        $(d).find('name').each(function(){
            $('#message').prepend("<div class='addresses' onClick='insert_adress($(this).text());'>"+$(this).text()+" и "+coord+"</div>");                 
        });
    }
});

フィドル

于 2013-10-04T05:29:33.433 に答える
0

それ以外の$(d).find('name'),

使用する$(d).find('featuremember').each(function(){...}),

featuremember - オブジェクトを表すため、オブジェクトをループしない理由

次に、ループ内で使用します

var pos = $($(this).find('pos')).text();
var name = $($(this).find('name')).text();

最後に

$('someId').prepend(name + ' pos: ' + pos);
于 2013-10-04T05:23:24.660 に答える
0

php を使用して xml を json に変換し、それを js に送信することをお勧めします。

于 2013-10-04T05:16:06.137 に答える
0

コンソールを確認した場合、次のエラーが表示されます。

Uncaught TypeError:オブジェクト76.919800 43.24910076.919684 43.24921476.919989 43.24876176.920375 43.24899176.920294 43.2494967676.919692 43.24471924492 43.244719192

この行が問題の原因です。

var coord = $(d).find('pos').text().next();  //remove next will fix it

JSFiddleでこれを確認してください

参考: F12 を押して、コンソールにエラーがないか確認します。

于 2013-10-04T05:16:44.200 に答える