当前位置: 首页 > 面试题库 >

使用jQuery从JavaScript对象添加/删除项目

杭令
2023-03-14
问题内容

我有一个JavaScript对象,如下所示:

var data = {items: [
    {id: "1", name: "Snatch", type: "crime"},
    {id: "2", name: "Witches of Eastwick", type: "comedy"},
    {id: "3", name: "X-Men", type: "action"},
    {id: "4", name: "Ordinary People", type: "drama"},
    {id: "5", name: "Billy Elliot", type: "drama"},
    {id: "6", name: "Toy Story", type: "children"}
]};

如果我想在此列表中添加/删除项目,我将如何使用jQuery进行处理?客户希望该列表是可动态修改的。


问题答案:

首先,您引用的代码 不是
JSON。您的代码是JavaScript对象文字表示法。JSON是为简化解析而设计的子集。

您的代码定义的对象data包含数组()items对象)(每个都具有idnametype)。

您不需要或不需要jQuery,而只需JavaScript。

添加项目:

data.items.push(
    {id: "7", name: "Douglas Adams", type: "comedy"}
);

这增加了最后。参见下面的中间添加。

删除项目:

有几种方法。该splice方法最通用:

data.items.splice(1, 3); // Removes three items starting with the 2nd,
                         // ("Witches of Eastwick", "X-Men", "Ordinary People")

splice 修改原始数组,并返回您删除的项目的数组。

在中间添加:

splice实际上既添加又删除。该splice方法的签名是:

removed_items = arrayObject.splice(index, num_to_remove[, add1[, add2[, ...]]]);
  • index -开始进行更改的索引
  • num_to_remove -从该索引开始,删除这么多条目
  • addN -…然后插入这些元素

所以我可以在第3个位置添加一个项目,如下所示:

data.items.splice(2, 0,
    {id: "7", name: "Douglas Adams", type: "comedy"}
);

这就是说:从索引2开始,删除零个项目,然后插入以下项目。结果看起来像这样:

var data = {items: [
    {id: "1", name: "Snatch", type: "crime"},
    {id: "2", name: "Witches of Eastwick", type: "comedy"},
    {id: "7", name: "Douglas Adams", type: "comedy"},     // <== The new item
    {id: "3", name: "X-Men", type: "action"},
    {id: "4", name: "Ordinary People", type: "drama"},
    {id: "5", name: "Billy Elliot", type: "drama"},
    {id: "6", name: "Toy Story", type: "children"}
]};

您可以删除并立即添加一些:

data.items.splice(1, 3,
    {id: "7", name: "Douglas Adams", type: "comedy"},
    {id: "8", name: "Dick Francis", type: "mystery"}
);

…这意味着:从索引1开始,删除三个条目,然后添加这两个条目。结果是:

var data = {items: [
    {id: "1", name: "Snatch", type: "crime"},
    {id: "7", name: "Douglas Adams", type: "comedy"},
    {id: "8", name: "Dick Francis", type: "mystery"},
    {id: "4", name: "Ordinary People", type: "drama"},
    {id: "5", name: "Billy Elliot", type: "drama"},
    {id: "6", name: "Toy Story", type: "children"}
]};


 类似资料:
  • 问题内容: 如何从数组中删除对象?我想删除,其中包括名称的对象从。例如: 我要实现: 问题答案: 您可以使用多种方法从数组中删除项目: 如果要删除position处的元素,请使用: 要么 您可以使用或结合使用参见MDN从数组中删除一个或多个元素,例如

  • 一个课程只有一个主题(CoursetType)和一个数字(courseNumType)。 我已经在下面粘贴了两个类的完整代码,但我认为问题是我的action listener创建了一个新对象,然后调用了一个dropClass()方法(实际上是一个list.remove())。但我不确定如何在不创建新对象的情况下传递正确的值。 这是我创建GUI和实现动作侦听器的主要方法和类: 课程类别:

  • 问题内容: 嗨,我必须从一个JList中选择一个元素,将其从第一个元素中删除。我创建的方法仅插入一个元素,覆盖最后一个元素,并且不会从第一个JList中删除所选项目。这是代码: 第一名单 通过此方法填充: 第二个列表,我要在其中插入从第一个列表中删除的项目: 这是无效代码: 谢谢 问题答案: 问题是 您可能要添加一个元素并立即将其删除,因为添加和删除操作都在同一listModel上。 尝试

  • 问题内容: 我正在尝试添加和删除被单击的li元素上的类。这是一个菜单,当我单击每个li项目时,我希望它获得该课程,而所有其他li项目都将其删除。因此,一次只有一个li项目上课。这就是我走了多远(见小提琴)。我不确定如何使“ about-link”从当前类开始,但是当单击其他li项之一时将其删除吗? 问题答案: 为什么不尝试这样的事情?

  • 问题内容: 我正在尝试添加/删除表行。 这是我的代码: HTML表格 JavaScript 现在,如您所见,在我的表格中,我有文本字段和按钮。我想要的是: 仅重复行的结构。我现在无法执行此操作,因为innerHTM仅接收文本。如何插入文本框或标签? 文本字段的ID也应该不同,因为稍后我将检索这些值以将其放入数据库中。 我想放置一个函数以增加POI的数量 有人可以帮我吗? 问题答案: 您可以仅克隆具

  • 问题内容: 我希望能够将多个行添加到div并删除它们。我在页面顶部有一个“ +”按钮,用于添加内容。然后,每行右侧都有一个“-”按钮,用于删除该行。我只是无法弄清楚此示例中的javascript代码。 这是我的基本HTML结构: 这是我想在内容div中添加的内容: 问题答案: 你可以做这样的事情。