jquery读取子xml数据

时间:2013-02-07 12:12:53

标签: xml ajax jquery xml-parsing

我想知道如何修复我的脚本,我想在你点击按钮时发出警报但它跟上同一页面上xml发生的变化。 当我点击按钮没有任何反应时,我会认为这个脚本会起作用。我想我是否能从更有经验的人那里得到任何意见。

$(document).ready(function(){

function get_info() {
    $.ajax({
        type: "GET",
        url: "xmldata/product.xml",
        dataType: "xml",
        cache: false,
        complete: function(doc) {
            var product = $(doc.responseText).find("product").text() == 1;
            var name = product.next().children("name").text();
            var cost = product.next().children("cost").text();
            $("#xmlalert").click(function(){
                                alert(cost);
            })
        }
    });

}
setInterval(function() {
    get_info();
}, 5000);
});

xml数据如下所示:

<?xml version="1.0" encoding="utf-8"?>
<store>
   <product>1</product>
    <info>
        <name>Toy</name>
        <cost>1196</cost>
    </info>
</store>

1 个答案:

答案 0 :(得分:0)

Html代码

<button class="button" id="1">One</button>
<button class="button" id="2">Two</button>

更改您的javascript代码,如:

$(document).ready(function(){
      function get_info() {
        $.ajax({
            type: "GET",
            url: "xmldata/product.xml",
            dataType: "xml",
            cache: false,
            complete: function(doc) {
            $(".button").click(function(event){
                console.log($(this).attr('id'));
                var product = $(doc.responseText).find("product").eq($(this).attr('id')-1);
                var currentIndex=0;
                product.each(function(index){
                    var name = $(this).next().children("name").text();
                    var cost = $(this).next().children("cost").text();
                    alert(cost);    
                });
            });
        }
        });

        }
        setInterval(function() {
            get_info();
        }, 2000);
});

XML

<?xml version="1.0" encoding="utf-8"?>
<store>
   <product>1</product>
    <info>
        <name>Toy</name>
        <cost>1196</cost>
    </info>
    <product>2</product>
    <info>
        <name>Toy 2</name>
        <cost>11962</cost>
    </info>

</store>