XML, анализирующий использование jQuery

У меня есть следующий xml:

<?xml version="1.0" encoding="utf-8"?>
<Area xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <Scenes>
   <Scene Index="1" Name="Scene1" />
   <Scene Index="2" Name="Scene2" /> 
 </Scenes>
</Area>

Который я пытаюсь проанализировать с jQuery:

<script>
        $(document).ready(function(){
            $.ajax({
                type: "GET",
                url: "list.xml",
                dataType: "xml",
                success: function(xml) {
                    $(xml).find('scenes').each(function(){
                            $(this).find('scene').each(function(){
                            var name = $(this).attr('name');                            
                            $('<div class="items" ></div>').html('<p>'+name+'</p>').appendTo('#page-wrap'); 

                        });                     
                    });
                }
            });
        });
</script>

Почему это не работает?На помощь!! первая попытка javascript/jquery, Это основано на примере, который я нашел, но до сих пор не могли адаптировать его к моему использованию. / Lars

1
задан abatishchev 7 June 2010 в 09:38
поделиться

3 ответа

Этот код работает для меня в Safari и (что удивительно) Firefox:

$.ajax({
    type: "GET",
    url: "list.xml",
    dataType: "xml",
    success: function(xml) {
  $(xml).find('Scenes').each(function(){
      $(this).find('Scene').each(function(){
          var name = $(this).attr('Name');                            
          $('<div class="items" ></div>').html('<p>'+name+'</p>').appendTo('#page-wrap'); 
             });                     
         });
    },
    error:function(a,b,c) { console.log( c ) }
});

Причина, по которой он не работает не работает в некоторых браузерах, вероятно, из-за того, что вы размещаете в файловой системе (при условии, что это так). Chrome и Firefox, как правило, создают проблемы при доступе к файловой системе через запрос AJAX из-за одинаковой политики происхождения.

С javascript все в порядке. Вы либо получаете пустой ответ, либо ошибку.

Этот вопрос может быть применимым:

Проблемы с jQuery getJSON с использованием локальных файлов в Chrome

2
ответ дан 3 September 2019 в 00:00
поделиться

Попробуйте изменить это:

$('<div class="items" ></div>')

на это:

$('.items')
0
ответ дан 3 September 2019 в 00:00
поделиться

Попробуйте запустить код из консоли браузера, а не когда документ готов. Это позволит вам выполнять итерации намного быстрее. Для начала попробуйте FireBug в Firefox. Я нахожу, что консоль FB намного проще в использовании при отладке сложных действий, чем то, что вы получаете в браузере на базе Webkit.

Вы также можете попробовать добавить error и complete функции обратного вызова в вызов $.ajax().

$.ajax({
    // ...
    error: function (req, err_type, ex) { console.log("error..."); },
    complete: function (req, status) { console.log("complete..."); }
});

Вы также можете попробовать добавить несколько предупреждений или console.logs в обработчик успеха. Достаточно, чтобы убедиться, что он вызывается и получает результат xml, который вы ожидаете получить.

0
ответ дан 3 September 2019 в 00:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: