-3

次のコードを見て、プログラムを実行できない理由を教えてください。

enter code here
 $(document).ready(function()
  {
  var comp=new Array("AAPL","MSFT","XRTX&");
  var t = setInterval(function(){getPrice();},200);});
  function getPrice() {
    for (var i=0;i<comp.length;i++){
    $.getJSON('https://finance.google.com/finance/info?client=ig&q='+comp[i]+'&callback=?', function(response){
  var stockInfo = response[0];
  var stockString = '<div id="stockprice">';
   stockString += 'Candente Copper: DNT $'+''+stockInfo.l+'';
   stockString += '</div>';
   $('#stockprice').replaceWith(stockString);
   $("#stockprice:contains('-')").addClass('red'); 
   $("#stockprice:contains('+')").addClass('green');
   }      
   });
   }​

Array オブジェクトに問題がありますか、それともプログラムの他の部分に問題がありますか? コードは配列要素を呼び出さなくても正常に動作することに注意してください。

ありがとう

4

1 に答える 1

1

{s、}s、(s、)sがすべて正しく一致しているわけではありません。また、関数がcomp変数への参照を持つためには、両方が同じ関数スコープ内にある必要があります。この場合は次のようになります$(document).ready(function(){ ... });。私もあなたsetInterval2000(2s)に増やしたことに気付くでしょう。

$(document).ready(function()
{
   var comp = new Array("AAPL","MSFT","XRTX&");
   var t = setInterval(function(){getPrice();},2000);

    function getPrice() 
    {
       for (var i=0;i<comp.length;i++){
        $.getJSON('https://finance.google.com/finance/info?client=ig&q='+comp[i]+'&callback=?', function(response){
         var stockInfo = response[0];
         var stockString = '<div id="stockprice">';
         stockString += 'Candente Copper: DNT $'+''+stockInfo.l+'';
         stockString += '</div>';

         $('#stockprice').replaceWith(stockString);
         $("#stockprice:contains('-')").addClass('red');  
         $("#stockprice:contains('+')").addClass('green');
       });
      }
    }
});​
于 2012-10-19T18:08:38.170 に答える