获取 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 数组的下一个和上一个元素 的相关文章

  • Node.js:如何在检索数据(块)时关闭响应/请求

    我正在用 node js 构建一个应用程序 它加载多个页面并分析内容 因为 node js 发送块 所以我可以分析这些块 如果一个块包含例如索引 nofollow 我想关闭该连接并继续其余部分 var host example com to
  • 从未用 @flow 标记的导入文件中获取类型定义

    TL DR我怎么告诉flow从未声明的导入模块导入类型定义 flow 加长版 流接缝能够从不使用流语法的文件中派生类型 请参阅示例 示例文件 flow js if Math random lt 0 5 var y hello else va
  • 音频 blob 的 URL.createObjectURL 在 Firefox 中给出 TypeError

    我正在尝试从创建的音频 blob 创建对象 URLgetUserMedia 该代码在 Chrome 中可以运行 但在 Firefox 中存在问题 错误 当我打电话时stopAudioRecorder 它停在audio player src
  • 如何将 Google Charts 与 Vue.js 库一起使用?

    我正在尝试使用 Vue js 库使用 Google Charts 制作图表 但我不知道如何添加到 div 这是我尝试做的 这是如何使用普通 javascript 添加图表 这是文档的代码示例 https developers google
  • MVC 在布局代码之前执行视图代码并破坏我的脚本顺序

    我正在尝试将所有 javascript 包含内容移至页面底部 我正在将 MVC 与 Razor 一起使用 我编写了一个辅助方法来注册脚本 它按注册顺序保留脚本 并排除重复的内容 Html RegisterScript scripts som
  • 使用 Ajax.Request 将 JSON 从浏览器传递到 PHP 的最佳方法

    您好 我有一个 JSON 对象 它是一个二维数组 我需要使用 Ajax Request 将其传递给 PHP 我知道的唯一方法 现在我使用js函数手动序列化我的数组 并获取以下格式的数据 s 1 d 3 4等 我的问题是 有没有办法更直接 有
  • Meteor - 从客户端取消服务器方法

    我正在通过服务器方法执行数据库计数 用户可以选择他们希望如何执行计数 然后调用该方法 我的问题是 计数可能需要一些时间 并且用户可能会在方法运行时改变主意并请求不同的计数 有什么方法可以取消调用的方法并运行新的计数吗 我认为 this un
  • 跟踪用户何时点击浏览器上的后退按钮

    是否可以检测用户何时单击浏览器的后退按钮 我有一个 Ajax 应用程序 如果我可以检测到用户何时单击后退按钮 我可以显示适当的数据 任何使用 PHP JavaScript 的解决方案都是优选的 任何语言的解决方案都可以 只需要我可以翻译成
  • 将div设置为隐藏,延时后可见

    我试图在 X 时间后 也许甚至在随机时间之后 但现在我们只做固定时间 在黑色背景上出现一个黄色方块 function initialSetup if document getElementById yellow null document
  • 在 webpack 2.x 中使用 autoprefixer 和 postcss

    如何使用autoprefixer使用 webpack 2 x 以前 它曾经是这样的 module loaders test scss loader style css sass postcss postcss gt return autop
  • Babel 7 Jest Core JS“TypeError:wks不是函数”

    将我的项目升级到 Babel 7 后 通过 Jest 运行测试会抛出以下错误 测试在 Babel 6 中运行没有任何问题 但在 Babel 7 中失败并出现以下错误 TypeError wks is not a function at Ob
  • Electron - 为什么在关闭事件时将 BrowserWindow 实例设置为 null

    The 电子文档 https electronjs org docs api browser window 提供以下代码示例来创建新窗口 const BrowserWindow require electron let win new Br
  • FireFox 中的自动滚动

    我的应用程序是实时聊天 我有一个 Div 来包装消息 每条消息都是一个 div 所以 在几条消息之后 我的 DOM 看起来像这样 div div Message number two div div div div
  • 如何获取给定 DOM 元素的所有定义的 CSS 选择器?

    如何使用 jQuery 获取给定 DOM 元素的所有定义的 CSS 选择器 定义后 我的意思是在应用于任何样式表的所有 CSS 选择器document 在某种程度上 这类似于 FireBug 实现的功能 其中显示所选 DOM 元素的所有应用
  • Jquery 验证不能正确验证数字?

    我在使用 jquery 非侵入式验证验证数字时遇到问题 我使用的版本是 ASP NET MVC 3 jQuery 1 9 1 jQuery 用户界面 1 10 1 JQuery 验证 1 11 0 我试图验证的输入是
  • 为什么 jquery 没有检测到单选按钮未被选中的情况? [复制]

    这个问题在这里已经有答案了 可能的重复 JQuery radioButton change 在取消选择期间不会触发 https stackoverflow com questions 5176803 jquery radiobutton c
  • 在 React.js 中编辑丰富的数据结构

    我正在尝试为数据结构创建一个简单的基于网格的编辑器 但我在使用 React js 时遇到了一些概念问题 他们的文档对此没有太大帮助 所以我希望这里有人可以提供帮助 首先 将状态从外部组件传输到内部组件的正确方法是什么 是否有可能将内部组件中
  • 使用 Ajax 请求作为源数据的 Jquery 自动完成搜索

    我想做的事 我想使用 jquery 自动完成函数创建一个输入文本字段 该函数从跨域curl 请求获取源数据 结果应该与此示例完全相同 CSS 在这里并不重要 http abload de img jquerydblf5 png http a
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp
  • 如何从图像输入中获取 xy 坐标?

    我有一个输入设置为图像类型

随机推荐

  • 如何删除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