获取 json 数组的下一个和上一个元素

2024-02-15

我的代码需要帮助。我想要一个上一个和一个下一个按钮,这些按钮将调用函数 viewBlogItem(direction,cat,blogid);

在该函数中,我将读出 json 文件,并按“类别”进行分类。

每个 blogItem 都有一个articleid 和一个类别,如果单击“下一个”按钮,我想要下一个 blogItem.articleid 并显示该条目(我对该条目使用“附加”)。如果方向==“下一个”,那么它会查看类别中是否有下一个项目,如果没有则隐藏$('.next')。上一个按钮也是如此 $('.previous')

博客项目.json

{
  "blogItem":[
    {
      "id": 1,
      "title": "animals blog 1",
      "category":"animals",
      "text":"text",
      "articleid":1
    },
    {
      "id": 2,
      "title": "lifestyle blog 1",
      "category":"lifestyle",
      "text":"text",
      "articleid": 1
    },
    {
      "id": 3,
      "title": "animals blog 2",
      "category":"animals",
      "text":"text",
      "articleid": 2
    },
    {
      "id": 5,
      "title": "animals blog 4",
      "category":"dieren",
      "text":"text",
      "articleid":4
    },
    {
      "id": 4,
      "title": "animals blog 5",
      "category":"animals",
      "text":"text",
      "articleid":3
    }
  ]
}

jquery

 function viewBlogItem(direction,cat,blogid) {
            var id = "";
            if(direction == "next"){
                // code for showing next blogitem
                //if no next then
                $('').hide();
            }
            else{
                // if no previous then hide
                //code for showing previous blogitem
            }
            loadBlog(id);
        }

    function loadBlog(blogid){
        $.getJSON('blogitems.json', function (data) {
            $.each(data.blogItem, function (i, item) {
                if (item.id == blogid) {
                    $('.view').append('all sorts of stuff');
                    return;
                }
            });
        });
    }

我还想对我的 json 结构有一些建议。


我怎么知道之后或之前没有其他博客?

查看当前博客项目的索引,看看下一个是否大于数组中的项目数,或者前一个是否小于 0。

var blogs = {
    "blogItem": [{
        "id": 1,
        "title": "animals blog 1",
        "category": "animals",
        "text": "text",
        "articleid": 1
    }, {
        "id": 2,
        "title": "lifestyle blog 1",
        "category": "lifestyle",
        "text": "text",
        "articleid": 1
    }, {
        "id": 3,
        "title": "animals blog 2",
        "category": "animals",
        "text": "text",
        "articleid": 2
    }, {
        "id": 5,
        "title": "animals blog 4",
        "category": "dieren",
        "text": "text",
        "articleid": 4
    }, {
        "id": 4,
        "title": "animals blog 5",
        "category": "animals",
        "text": "text",
        "articleid": 3
    }]
};

var index = 0;
var item = blogs.blogItem[index];

var title = document.getElementById('title');
var text = document.getElementById('text');
var previous = document.getElementById('previous');
var next = document.getElementById('next');

displayItem(item);

previous.addEventListener('click', function() {
    displayItem(blogs.blogItem[--index]);
});

next.addEventListener('click', function() {
    displayItem(blogs.blogItem[++index]);
});

function displayItem(item) {
    title.innerText = item.title;
    text.innerText = item.text;
    previous.disabled = index <= 0;
    next.disabled = index >= blogs.blogItem.length -1;
}
[disabled] {
    opacity: 0.5;
}
<link href="//cdnjs.cloudflare.com/ajax/libs/skeleton/2.0.4/skeleton.min.css" rel="stylesheet"/>
<div class="container">
  <div>
    <div id="title"></div>
    <div id="text"></div>
  </div>
  <button id="previous">Previous</button>
  <button id="next">Next</button>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取 json 数组的下一个和上一个元素 的相关文章

随机推荐

  • 如何删除tinymce中自动添加的p标签

    我使用的是tinymce 4 0 1 当您开始输入或按回车键时 它会自动添加 p 标签 如何动态删除这些 p 标签 然后将内容重新插入编辑器 您需要将以下行添加到 init 语句中 forced root block 所以 你的完整代码将是
  • PHP 函数与 jQuery AJAX?

    我有一个关于 PHP 函数 jQuery 和 AJAX 的问题 如果我的 php 索引中有一个像这样的按钮
  • 谷歌recaptcha Remoteip解释

    In the 验证码文档 https developers google com recaptcha docs verify它说remoteip参数是可选的 但我不明白它的目的 因为即使我发送与 REMOTE ADDR 不同的 IP 来自
  • 使用 KnpSnappyBundle 生成 jpg 时没有资源

    这似乎是一个已知问题 但我找不到解决方案 使用 KnpSnappyBundle 生成 jpg pdf 时 未加载 css 文件 在谷歌群组上 但没有提供答案 有没有人找到这个问题的解决方案 回答有点晚了 但我遇到了同样的问题 我使用资产的绝
  • 是否有可能有匹配所有有效正则表达式的正则表达式?

    是否可以仅使用正则表达式来检测给定字符串是否是有效的正则表达式 假设我有一些字符串 它们可能是也可能不是有效的正则表达式 我想要一个正则表达式与对应于有效正则表达式的那些字符串相匹配 那可能吗 或者我是否使用一些更高级别的语法 即上下文无关
  • jquery:嵌套标签和悬停()在 IE 中不起作用

    我有这样的结构 div span span span span span span span span div 我需要捕获容器的 mouseout 事件 所以我让 jquery 这样做 container hover function al
  • 在 TeamCity 5.1 通知中显示文件更改

    我想在 TeamCity 5 1 电子邮件通知中包含更改文件的列表 该通知会在构建成功或失败后发送给我的团队 我已经审查了在 TeamCity 5 1 中自定义通知 http confluence jetbrains net display
  • SwiftUI Widget iOS 14 渐变问题

    我想使用自定义颜色为我的小部件创建渐变颜色 当我只使用两种颜色时 我遇到了问题 结果没有应用其中一种颜色 但背景变成绿色 struct WeatherWidgetMediumView View var gradient LinearGrad
  • 为什么调用shared_from_this会调用std::terminate

    考虑这段代码 class A public std enable shared from this a public std shared ptr a f return shared from this int main A a std s
  • 实体框架:全局禁用删除

    我们正在开始一个新的应用程序 我们想使用实体框架 我们很少担心意外删除sql行 特别是意外设置相关数据等 我想禁用每个删除 因为我们只是用 validUntil 列标记每一行并且从不删除行 I saw 它可以通过 sql 中的角色来完成 h
  • 如何以编程方式更改 RecyclerView 中项目的位置?

    有没有办法将特定项目移动到特定位置RecyclerView using LinearLayoutManager以编程方式 你可以这样做 一些活动 片段 无论什么 List
  • 为什么连接字符串不适用于 EF 迁移?

    我创建了一个与 NuGet Gallery 实现一起使用的数据库 我可以在 sql manager 2012 中看到数据库 并且可以使用我的连接字符串从我编写的测试程序访问它 但是 当我尝试在包管理器控制台中运行 Update Databa
  • VB 中的类与模块

    在 VB 中使用模块而不是类有什么优势 如果有的话 它们有何不同 使用模块有哪些优点 缺点 在 VB 或 VB NET 中 我两者都使用 A Modules and B 类只有Shared功能 解决同样的问题 两者都可以让你从逻辑上grou
  • 删除所有早于 X 天的文件,但至少保留 Y 个最新的文件[重复]

    这个问题在这里已经有答案了 我有一个脚本 可以从备份目录中删除早于 X 21 天的数据库转储 DB DUMP DIR var backups dbs RETENTION 21 24 60 3 weeks find DB DUMP DIR t
  • 代号一个应用程序中的额外侧边菜单

    在我的应用程序中 我有一个右侧菜单 但似乎还有一个左侧菜单 仅包含后退按钮 没有菜单按钮 带有三条水平线 但如果触摸屏幕左边缘并拖动 则会出现菜单 我不明白为什么要创建它 但是有什么方法可以禁用或删除它吗 None
  • 在 PHP 中查找多个字符串位置

    我正在编写一个解析给定 URL 的 PHP 页面 我能做的就是仅找到第一个出现的值 但是当我回显它时 我得到另一个值而不是给定的值 这就是我到目前为止所做的 我知道可以使用循环 但我不知道循环体的条件 我怎
  • 在从 PHP 发送的电子邮件中使用 HTML 格式

    如何通过 PHP 脚本发送 HTML 格式 由于某种原因 它总是显示为 b Example b 代替Example 我确信我必须在某个地方包含 HTML 标头 我只是不知道需要做什么 我是一个十足的 PHP 菜鸟 这是我的 PHP 脚本 相
  • Jupyter笔记本导入错误:没有名为tornado.log的模块

    我已经安装了 jupyter 当尝试启动它时 出现以下错误 File Library Frameworks Python framework Versions 2 7 bin jupyter notebook line 7 in
  • 防病毒软件说我的程序可疑

    我在 wpf Visual Studios 中构建了一个程序 当我运行它时 avast 说检测到可疑程序 然后关闭我的程序 我可以采取任何措施来验证它 还是必须进入 avast 并将其设置为不阻止我的程序 您当然可以在大多数主要防病毒软件包
  • 获取 json 数组的下一个和上一个元素

    我的代码需要帮助 我想要一个上一个和一个下一个按钮 这些按钮将调用函数 viewBlogItem direction cat blogid 在该函数中 我将读出 json 文件 并按 类别 进行分类 每个 blogItem 都有一个arti