0

スクリプトを修正する方法を知りたいのですが、ボタンをクリックしたときにアラートが発生するようにしたいのですが、同じページの 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>
4

1 に答える 1

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>
于 2013-02-07T12:19:29.040 に答える