在javascript中隐藏<p>字段</p>

时间:2014-02-04 14:50:45

标签: javascript api function hide reddit

这是我从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不起作用。我还能怎样解决这个问题?

1 个答案:

答案 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++
});