0

このプログラムは現在、xml コードを読み取り、株式の略語を取得し、アルファベット順に並べ替えてから、uo リストに出力します。略語にカーソルを合わせると、色が赤に変わります。私が持っている目標は、略語にカーソルを合わせると、その会社の xml データからのすべてのデータが表示されることです。シンボル(xmlファイルの略語)が名前(配列の略語)と同等であるかどうかを示すifステートメントを使用してみました。その後、すべてのジャンクを出力します。すべてを出力する行は、必要な形式で正しく機能します。if ステートメントに取り組む必要があるだけです。

私が理解したのは、2 つの変数を == で比較できないということです。シンボルも属性であり、名前はシンボルを格納する配列からのものであることに注意してください。また、if(checkPassword(name, symbol)) と言って、以下の jQuery コードで行ったようにすべて出力してみましたが、うまくいきませんでした。

私が取り組んでいるifステートメントの横にコメントを入れました。それはjQueryの一番下に向かっています。

HTML:

 <body onload="onBodyLoad()">
  <div id="stockList"></div>
  <br />
  <br />
  <br />
  <div id="stockInfo"></div>

jQuery:

$(document).ready(function () {
    $.ajax({
        type: "GET",
        url: "stocks.xml",
        dataType: "xml",
        success: function (xml) {
            var companyNames = [];
            $(xml).find('Stock').each(function () {
                var symbol = $(this).attr('symbol');
                companyNames.push(symbol);
            });



            companyNames.sort();
            $.each(companyNames, function (index, name) {
                $('#stockList').append('<div><li>' + name + '</li></div>');

            });


            function CheckPassword(val, val2) {

                var strInput = val.value;
                var strInput2 = val2.value;

                if (strInput != strInput2) {
                    val2.focus();
                    val2.select();
                    return false;
                } else
                    return true;

            }


            $(xml).find('Stock').each(function () {
                var company = $(this).find('Company').text();
                var symbol = $(this).attr('symbol');                  
                var market = $(this).find('Market').text();
                var sector = $(this).find('Sector').text();
                var price = $(this).find('Price').text();

                var low = $(this).find('Low').text();
                var high = $(this).find('High').text();


                var amount = $(this).find('Amount').text();
                var yieldx = $(this).find('Yield').text();
                var frequency = $(this).find('Frequency').text();

                $('*').mouseover(function () {
                    $('#stockList li').text($(this).attr('comparison'));
                });


                $('#stockList li').hover(
                function () {
                    $(this).css({ color: 'red' }); //mouseover
                    if (name == symbol) {  // THIS IS THE STATEMENT YOU'RE LOOKING FOR PROGRAMMING GODS

                            $('#stockInfo').append('<div><ol><li>' + "Company = " + company + '</li><br/><li>' + "Market = " + market + '</li><br/><li>' + "Sector = " + sector + '</li><br/><li>' + "Price = " + price + '</li><br/><li>' + "Year Range = " + low + " " + high + '</li></ol><br/>');
                        }

                },
                function () {
                    $(this).css({ color: 'navy' }); // mouseout
                    $('#stockInfo').empty();
                }



            );

            });




        }
    });
});

XML サンプル:

<Products>
<Stock symbol="GOOG">
    <Company>Google</Company>
    <Market>NASDAQ</Market>
    <Sector>Software</Sector>
    <Price>$487.80</Price>
    <YearRange>
        <Low>$331.55</Low>
        <High>$488.50</High>
    </YearRange>
    <Dividend available="false"/>
</Stock>
<Stock symbol="BA">
    <Company>Boeing Company</Company>
    <Market>NYSE</Market>
    <Sector>Aerospace</Sector>
    <Price>$79.05</Price>
    <YearRange>
        <Low>$63.70</Low>
        <High>$89.58</High>
    </YearRange>
    <Dividend available="true">
        <Amount>$1.20</Amount>
        <Yield>$1.50</Yield>
        <Frequency>QTR</Frequency>
    </Dividend>
</Stock>
<Stock symbol="MO">
    <Company>Altria Group</Company>
    <Market>NYSE</Market>
    <Sector>Comsumables</Sector>
    <Price>$81.70</Price>
    <YearRange>
        <Low>$68.36</Low>
        <High>$85.00</High>
    </YearRange>
    <Dividend available="true">
        <Amount>$3.44</Amount>
        <Yield>$4.2</Yield>
        <Frequency>ANNUAL</Frequency>
    </Dividend>
</Stock>
</Products>
4

1 に答える 1

0
        var companyData = [];
        $(xml).find('Stock').each(function () {
            var symbol = $(this).attr('symbol');
            companyNames.push(symbol);
            companyData[symbol] = {
                company: $(this).find('Company').text(),
                symbol: $(this).attr('symbol'),                
                market: $(this).find('Market').text(),
                sector: $(this).find('Sector').text(),
                price: $(this).find('Price').text(),
                low: $(this).find('Low').text(),
                high: $(this).find('High').text(),
                amount: $(this).find('Amount').text(),
                yieldx: $(this).find('Yield').text(),
                frequency: $(this).find('Frequency').text()
            };
        });

        ...

        $("#stocklist li").hover(function() {
            $(this).css({ color: 'red' }); //mouseover
            var info = companyData[$(this).text()];
            $('#stockInfo').append('<div><ol><li>' + "Company = " + info.company + '</li><br/><li>' + "Market = " + info.market + '</li><br/><li>' + "Sector = " + info.sector + '</li><br/><li>' + "Price = " + info.price + '</li><br/><li>' + "Year Range = " + info.low + " " + info.high + '</li></ol><br/>');
        });
于 2013-03-29T21:14:00.920 に答える