使用jQuery Ajax </subject> </images>获取<subject>中的所有<images>

时间:2012-06-03 18:22:50

标签: javascript ajax jquery

我正在使用jQuery Ajax调用来获取图像列表。现在它可以工作,但获取XML文件中的所有图像。如何更改我的代码,以便获取给定主题的所有图像,而不是显示所有主题中的所有图像。

因此,对于每个'subject'标签,我想列出所有'image'标签。

我知道我必须用jQuery改变第11行

$(data).find('image').each(function(){

完整的jQuery功能

        <script type="text/javascript">
        $("#ARTH1520").live('pagebeforecreate', function() {
        $.get('data/ARTH1520.xml',function(data){
            $('.content').empty();
            $(data).find('subject').each(function(){
                var $subject = $(this);
                var html = '<div class="data">';                      
                html += '<div data-role="collapsible" data-collapsed="true" data-theme="b"><h3>' + $subject.attr('title') + '</h3>';
                html += '<ul data-role="listview">';

                    $(data).find('image').each(function(){
                    var $image = $(this);
                    html += '<li><img src="' + $image.attr('img') + '" />';
                    html += '<h3>' + $image.attr('title') + '</h3><p>' + $image.attr('description') + '</p></li>';

                    }); 

                html += '</ul>';
                html += '</div></div>';
                $('#result').append(html).trigger( "create" );
                $('#result .loading').remove();
            });                        
        });
        });
    </script>

XML文件

<subjects>
<subject title="At History One">
    <images>
        <image title="Mona Lisa" img="lisa.jpg" id="s1i1" description="image 1"></image>
        <image title="" img="" id="s1i2" description=""></image>
    </images>
</subject>  
<subject title="Renaissance">
        <images>
        <image title="" img="" id="s1i3" description=""></image>
    </images>
</subject>

1 个答案:

答案 0 :(得分:1)

尝试$subject.find('image').each(function(){ }遍历主题标记内的图像。你必须像你提到的那样更换第11行。