我从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>   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进入,就必须有一种方法来做突出显示(这就是在那里切换的东西)。但是,好吧,我是愚蠢的。
答案 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> 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}*/
});
});
答案 1 :(得分:0)
您需要在toggleClass
回调中的$.each
来电之后发出getJSON
来电。