2013-01-14 1 views
0

나는 기호가 결국 cms를 통해 입력되는 간단한 주식 시세 표시를 만들고 있습니다. 지금까지 나는 아약스 데이터를 올바르게 얻는 데 성공했습니다. 각 심볼을 분리하는 방법과 해당 데이터를 개별 항목, 목록 항목 또는 기타로 분할하는 방법을 알아 내려고했습니다. 나는 운도없이 각각의 것을 사용하려고 시도했다.배열 개체를 개별보기로 분할하십시오.

(function(){ 
var getStocks = (function(){ 

    var initialize = function(){ 
     _setListeners(); 
    }; 

    var _setListeners = function(){ 

      var symbol = ["GOOG", "AAPL", "A", "AA", "ABT"]; 

     $.ajax({ 
      url: "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20csv%20where%20url%3D'http%3A%2F%2Fdownload.finance.yahoo.com%2Fd%2Fquotes.csv%3Fs%3D"+symbol+"%26f%3Dnsl1d1t1c1ohgv%26e%3D.csv'%20and%20columns%3D'name%2Csymbol%2Clast_trade_price%2Cdate%2Ctime%2Cchange%2Ccol1%2Chigh%2Clow%2Ccol2'&format=json", 
      dataType: 'json', 
     success: function(data) { 
      console.log(data); 
      var name = data.query.results.row.name; 
      var last_trade = data.query.results.row.last_trade_price; 
      var last_trade_size = data.query.results.row.time; 
      var change = data.query.results.row.low; 

      $.each(data, function(index, value) { 
       $("#stock").append('Name:'+name+ 'Symbol:' +symbol+ 'Last Trade:' +last_trade+ 'Last Trade Size:' +last_trade_size+ 'Change:'+change); 
      }); 

    }, 
     error: function() { 
      $("#stock").html('<p>Something has gone terribly wrong.</p>'); 
     } 
    }); 

}; 
    //call initialize 
    return {init: initialize}; 
}()); 
//call headerNav 
this.getStocks = getStocks; 
}).call(this); 
+1

제이, 질문에 샘플 json을 포함하면 도움이 될 것입니다. –

+0

코드가 괜찮아 보입니다. 예제 입력과 출력은 무엇입니까? –

답변

0

당신은 당신의 each

var symbol = ["GOOG", "AAPL", "A", "AA", "ABT"]; 

$.ajax({ 
    url: "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20csv%20where%20url%3D'http%3A%2F%2Fdownload.finance.yahoo.com%2Fd%2Fquotes.csv%3Fs%3D" + symbol + "%26f%3Dnsl1d1t1c1ohgv%26e%3D.csv'%20and%20columns%3D'name%2Csymbol%2Clast_trade_price%2Cdate%2Ctime%2Cchange%2Ccol1%2Chigh%2Clow%2Ccol2'&format=json", 
    dataType: 'json', 
    success: function (data) { 
    console.log(data); 


    $.each(data.query.results.row, function (index, item) { 
     $("body").append('Name:' + item.name + 'Symbol:' +item. symbol + 'Last Trade:' + item.last_trade_price + 'Last Trade Size:' + item.last_trade_size + 'Change:' + item.change+'<br><br><br>'); 
    }); 

    }, 
    error: function() { 
    $("#stock").html('<p>Something has gone terribly wrong.</p>'); 
    } 
}); 

DEMO에 data.query.results.row 돌이 원하는 : http://jsfiddle.net/2LkLb/

내가 data.query.results.row 먼저 존재 함을 확인 할

여기 내 JS입니다. YQL은 어떤 이유로 데이터가 수집되지 않으면 오류 메시지를 반환한다는 것을 기억합니다.

브라우저 콘솔에서 status과 같은 값을 가진 데이터 객체를 검사 할 수 있습니다. YQL 문서도 도움이 될 것입니다.

+0

그 덕분에 charlietfl, 완벽하게 작동합니다. – intheusa

관련 문제