我试图回应其交易部分中遇到的每笔交易的所有头衔。我猜测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);
}
目前它循环播放并打印出列表中的最后一项,而在控制台中我看到每个标题。
答案 0 :(得分:1)
这些应该都有效,你在每次迭代中都覆盖了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);
}
你也应该在使用之前使用var声明变量's',否则你将设置全局's'属性,或者沿着这些行设置某些东西,如果使用s,那么会产生有趣的伪像,否则也会使用var :-)
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)
}
}
以上将是我的首选解决方案,因为它可以让您更好地控制每个元素并提供一些灵活性。我想我已经在上面正确地写了它。
希望有所帮助。 马特