JavaScript数组问题

时间:2012-10-19 17:56:31

标签: javascript json

请您查看下面的代码,让我知道为什么我无法运行该程序?

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对象或程序的其他部分有问题吗?请注意,代码工作正常,无需调用数组元素。

由于

1 个答案:

答案 0 :(得分:1)

您的{}()并未完全匹配。此外,为了使您的函数能够引用comp变量,它们必须都在相同的函数范围内,在这种情况下:$(document).ready(function(){ ... });。您会注意到我还将setInterval增加到2000(2s)。

<强> EXAMPLE

$(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');
       });
      }
    }
});​