这是我从reddit的api收集标题/帖子的代码:
$.getJSON("http://www.reddit.com/search.json?q=" + query + "&sort=" + val + "&t=" + time, function (data) {
var i = 0
$.each(data.data.children, function (i, item) {
var title = item.data.title
var url = item.data.url
var id = item.data.id
var subid = item.data.subreddit_id
var selftext = item.data.selftext
var selftextpost = '<p id="post' + i + '">' + selftext + '</p><br>'
var post = '<div>' + '<a href="' + url + '">' + title + '</a>' + '</div>'
results.append(post)
results.append(selftextpost)
i++
});
});
基本上每个帖子(selftext)都会为每个拉出的结果分配不同的段落id(post0,post1,post2等)。我还将创建一个“隐藏”按钮,该按钮遵循基于我的i变量(submit0,submit1,submit2等)的相同id方案。我想编写一个函数,以便根据他们点击的按钮,它将隐藏相应的段落。我已经尝试过if if语句,如果单击if(“#hide”+ i),然后隐藏相应的段落,但显然+ i不起作用。我还能怎样解决这个问题?
答案 0 :(得分:1)
你可以试试下面的内容吗?
showhide = $("<a class='hider'>Show/Hide</a>");
results.append(showhide);
$(showhide).click(function() {
$(this).next().toggle();
}
可替换地:
$.each(data.data.children, function (i, item) {
var title = item.data.title
var url = item.data.url
var id = item.data.id
var subid = item.data.subreddit_id
var selftext = item.data.selftext
var selftextpost = '<p id="post' + i + '">' + selftext + '</p><br>'
var showhide = $("<a class='hider" + i + "'>Show/Hide</a>");
var post = '<div>' + '<a href="' + url + '">' + title + '</a>' + '</div>'
results.append(post)
results.append(selftextpost)
results.append(showhide);
$(showhide).click(function() {
$(this).next().toggle();
});
i++
});