.success在ajax调用中没有正确返回xml数据

时间:2013-07-15 00:30:09

标签: jquery xml ajax xsd each

我试图在xml文档中将元素分解为三个级别。它奇怪地经历了13次,但每次都没有返回任何东西。

的xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<webpages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <course id="1">
        <photos>
            <photo>image1.jpg</photo>
            <photo>image2.jpg</photo>
            <photo>image3.jpg</photo>
            <photo>image4.jpg</photo>
            <photo>image5.jpg</photo>
            <photo>image6.jpg</photo>
            <photo>image7.jpg</photo>
            <photo>image8.jpg</photo>
            <photo>image9.jpg</photo>
            <photo>image10.jpg</photo>
            <photo>image11.jpg</photo>
            <photo>image12.jpg</photo>
            <photo>image13.jpg</photo>
        </photos>
    </course>

</webpages> 

ajax电话的成功:

success: function(entry) {
        $self.html("");        // removes the "loading..." notification from container
        $self.append('<h1>Multimedia Gallery</h1>');
        // gets and parse each child element in <webpages>
        $self.append('<div class="galleryTitle"><h4>Photos</h4></div>');
        $(entry).find('photos').children().each(function() {
          // gets the "id", "title", and "url" of current child element
            var elm = $(this);
            var photo = elm.find('photo').text();
            alert(photo);


            // display data
            $self.append('<div class="photos"><img src="img/photos/'+photo+'" alt="" /></div>');

        });

如果使用完成:是一个成功的方法然后我将重组,但我不认为这是问题。有什么想法吗??如果您需要更多信息,请告诉我您需要的其他代码,谢谢

2 个答案:

答案 0 :(得分:1)

如果elm$('photos').children(),那么elm.find('photo')会返回什么? 我猜你没有,因为你已经在elm中拥有了照片元素,而且根本不必使用find()

$(entry).find('photos').children().each(function() {
      var div = $('<div />', {'class':'photos'}),
          img = $('<img />', {src: 'img/photos/'+$(this).text(), alt: ''});

      $self.append( div.append(img) );
});

答案 1 :(得分:1)

在每个循环中,this指的是照片节点,因此elm.find('photo').text();应为elm.text();