这是我从 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++
});
});
基本上,每个帖子(自文本)都会为提取的每个结果分配一个不同的段落 ID(post0、post1、post2 等)。我还将创建一个“隐藏”按钮,该按钮基于我的 i 变量(submit0、submit1、submit2 等)遵循相同的 id 方案。我想编写一个函数,以便根据他们单击的按钮,它将隐藏相应的段落。我尝试过执行一个 if 语句,就像单击 if("#hide"+ i) 一样,然后隐藏相应的段落,但显然 + i 不起作用。我还能如何解决这个问题?
最佳答案
你能尝试下面的方法吗?
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++
});
关于javascript - 在 JavaScript 中隐藏 <p> 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21555653/