解析json,然后用它做点什么:如何让订单正确?

时间:2010-09-15 01:17:39

标签: jquery json

我从YQL中获取一些JSON,将其解析为一个列表。然后我想根据内容突出显示列表中的行。

我可以通过突出显示.click来分别做这两件事,但我真的不想做那一步 - 我希望这些亮点立即发生。这是两位:

var yqlURL="http://query.yahooapis.com/v1/public/yql?q=select%20name%2Cstatus%2Ccurrentposition%2Ccashonhand%20from%20atom%20where%20url%3D'https%3A%2F%2Fspreadsheets.google.com%2Ffeeds%2Flist%2F0AiMSzYWiIFeldHdzUXBnWkJxaWZ1eEdvRm5LMUppYXc%2Fod6%2Fpublic%2Fvalues'&format=json&diagnostics=true&callback=?";

$.getJSON(yqlURL, function(data) {

$.each(data.query.results.entry,function(){
$('#result').append('<li><b>'+this.name+'</b>  &nbsp current job: '+this.currentposition+' | cash on hand: '+this.cashonhand+' | race status: <span class="status">'+this.status+'</span></li>');
});
});

好的,这就是一点

这里有点二:

$('#clickall').click(function(){
$("#result li:contains('In')").toggleClass("in");
$("#result li:contains('Mulling')").toggleClass("mulling");
$("#result li:contains('Rumored')").toggleClass("rumored");
$("#result li:contains('Out')").toggleClass("out");
});

所以是的,我知道一旦JSON进入,就必须有一种方法来做突出显示(这就是在那里切换的东西)。但是,好吧,我是愚蠢的。

2 个答案:

答案 0 :(得分:2)

这样做,

var yqlURL = "http://query.yahooapis.com/v1/public/yql?q=select%20name%2Cstatus%2Ccurrentposition%2Ccashonhand%20from%20atom%20where%20url%3D'https%3A%2F%2Fspreadsheets.google.com%2Ffeeds%2Flist%2F0AiMSzYWiIFeldHdzUXBnWkJxaWZ1eEdvRm5LMUppYXc%2Fod6%2Fpublic%2Fvalues'&format=json&diagnostics=true&callback=?";

$.getJSON(yqlURL, function(data) {

    $.each(data.query.results.entry, function() {
        var li = $('<li>').html('<b>' + this.name + '</b>  &nbsp; current job: ' + this.currentposition + ' | cash on hand: ' + this.cashonhand + ' | race status: <span class="status">' + this.status + '</span>');

        $('#result').append(li);

        if (this.status == 'In') {
            li.addClass('in');
        } else if (this.status == 'Mulling') {
            li.addClass('mulling');
        } /* else if (blah == blah) {bla blah}*/
    });

});​

quick demo

答案 1 :(得分:0)

您需要在toggleClass回调中的$.each来电之后发出getJSON来电。