1

XML ドキュメントで 3 レベル下の要素をターゲットにしようとしています。奇妙なことに、各関数を 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>');

        });

done: の使用が成功した場合は、再構築しますが、それが問題だとは思いません。何かご意見は??さらに情報が必要な場合は、他に必要なコードを教えてください。ありがとう

4

2 に答える 2

1

の場合、何がelm返されますか? に既に写真要素があり、まったく使用する必要がないので、 何も推測していませんか?$('photos').children()elm.find('photo')
elmfind()

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

      $self.append( div.append(img) );
});
于 2013-07-15T00:35:16.193 に答える
1

各ループthisでは写真ノードを参照するので、そうするelm.find('photo').text();必要がありますelm.text();

于 2013-07-15T00:35:31.423 に答える