разбери json, потом что-то с этим сделай: как правильно оформить заказ? - PullRequest
0 голосов
/ 15 сентября 2010

Я получаю JSON из YQL и разбираю его в списке.Затем я хочу выделить строки в списке в соответствии с их содержанием.

Я могу сделать эти две вещи по отдельности, выделив .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 ]

2 голосов
/ 15 сентября 2010

сделай так,

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}*/
    });

});​

демоверсия

0 голосов
/ 15 сентября 2010

Вам необходимо сделать toggleClass вызовы после $.each вызова в getJSON обратном вызове.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...