使用jquery ajax从xml中检索单个记录

时间:2015-10-16 13:53:29

标签: javascript jquery ajax xml

我是jquery的新手,我有一个xml文档,我希望ajax只显示一条记录(容器),而不是显示所有其他记录(容器)。目前它显示所有记录,而我希望它在代码2中显示一个例如问题。

XML文件

<?xml version="1.0" encoding="UTF-8"?>
<container>
<record>
<code>1</code>
<question>what is your name</question>
</record>
<record>
<code>2</code>
<question>what is your day</question>
</record>
</container>

的Ajax

$.ajax({
    url:'my.xml',
    dataType:'xml',
    success: function(data){


        function question(e)
        {

                $(data).find('container record').each(function()
                {
                var code = $(this).find('code').text();
                if (code == 2)
                {
                    var record = $(this).find('question').text();
                    $('.timeline').append($('<P />',{text:record}));
                }
                else
                {

                    $('.timeline').append($('<P />',''));
                }


                });

        }
        question();
    },
    error: function(){
        $('.timeline').text('Failed to read feed');
    }   
});

HTML

<div class="timeline">

</div>

1 个答案:

答案 0 :(得分:0)

您可以使用:eq()选择器:

$.ajax({
    url:'my.xml',
    dataType:'xml',
    success: function(data){
        function question(no) {
            var $record = $(data).find('record:eq('+no+')');
            if ($record.find('code').text() == '2') {
                $('.timeline').append($('<P />', {text: $record.find('question').text() }))
            } else {
                $('.timeline').append($('<P />',''));
            }
        }
        question(0); //1, 2, 3 and so on
    },
    error: function(){
        $('.timeline').text('Failed to read feed');
    }   
});