что я делаю не так в JS? мне нужна одна координата для каждого элемента, но не для всех

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

  • 2
    В чем ошибка?
Теги:

5 ответов

0
Лучший ответ

Попробуйте это http://jsfiddle.net/cHJ6S/3/

...
            $(d).find('GeoObject').each(function () {
              var coord = $(this).find('pos').text();
              var name =  $(this).find('name').text();
              $('#message').prepend("<div class='addresses' onClick='insert_adress($(this).text());'>"+name+" и "+coord+"</div>"); 
            });
...

Это результат?

улица Муратбаева, 183 и 76.918695 43.249010
улица Муратбаева, 185 и 76.919100 43.248557
улица Муратбаева, 168 и 76.919692 43.248426
улица Карасай батыра, 108 и 76.920294 43.249496
улица Шагабутдинова, 103а и 76.920375 43.248991
улица Муратбаева, 166 и 76.919989 43.248761
улица Муратбаева, 164 и 76.919684 43.249214
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 text
        $(d).find('name').each(function(){
            $('#message').prepend("<div class='addresses' onClick='insert_adress($(this).text());'>"+$(this).text()+" и "+coord+"</div>");                 
        });
    }
});

скрипка

0

Если вы проверили консоль, вы бы увидели следующую ошибку

Uncaught TypeError : Объект 76.919800 43.24910076.919684 43.24921476.919989 43.24876176.920375 43.24899176.920294 43.24949676.919692 43.24842676.919100 43.24855776.918695 43.249010 не имеет метода 'next'

Эта строка является причиной вашей проблемы.

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

Проверьте это в JSFiddle

FYI: нажмите F12, чтобы проверить консоль на наличие ошибок.

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);
0

Я могу предложить вам преобразовать xml в json, используя php, а затем отправить его в js.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню