我正在尝试在他们的交易部分中回放它遇到的每一笔交易的所有标题。我猜for语句是不完全正确的,而且我也知道如何不通过循环print语句来遍历所有的标题。但我只是不确定如何做到这一点?
我的代码:
$(document).ready(function() {
$.ajax({
url: 'https://api.groupon.com/v2/deals.json?client_id={accesstoken}&division_id=new-york',
data: 'client_id='+ access_token + '&' + 'division_id'+ loc,
dataType: 'jsonp',
success: function (data) {
items = data;
// title = data.deals[0].shortAnnouncementTitle;
console.log(items)
handleResult(items)
// handleResult(title)
},
});
function handleResult(items) {
for(var i=0; i<items.deals.length; i++) {
var title = items.deals[i].shortAnnouncementTitle;
s = "<h2 class='results'>" + title + "</h2>";
console.log(title)
}
$("#result").html(s);
} 目前,它只遍历并打印出列表中的最后一项,而在控制台中,我可以看到每个标题。
发布于 2012-10-02 00:16:42
这两种方法应该都有效,你在每次迭代中都覆盖了s的值,你试图构建一个更大的字符串,但错过了加号:
function handleResult(items) {
var s = "";
for(var i=0; i<items.deals.length; i++) {
var title = items.deals[i].shortAnnouncementTitle;
s += "<h2 class='results'>" + title + "</h2>";
//or s = s+ ....
console.log(title)
}
$("#result").html(s);
} 此外,您应该在使用变量's‘之前使用var声明它,否则您将设置全局's’属性,或者类似的内容,如果在没有var的其他地方使用s,这将创建有趣的伪像:-)
function handleResult(items) {
for(var i=0; i<items.deals.length; i++) {
var title = items.deals[i].shortAnnouncementTitle;
var s = $("<h2 class='results'></h2>").text(title);
$("#result").append(s);
console.log(title)
}
} 以上将是我首选的解决方案,因为它可以让您更好地控制每个元素,并提供一点灵活性。我想我在上面写的是正确的。
希望这能有所帮助。哑光
https://stackoverflow.com/questions/12675942
复制相似问题