【问题标题】:Appending/creating/removing items from a javascript array, ideas?从 javascript 数组中添加/创建/删除项目,想法?
【发布时间】:2010-09-06 13:42:03
【问题描述】:

我有一个要求,即我在一个页面上有两个窗格,左侧的窗格包含一系列特定于从下拉列表中选择的选项的记录。每条记录旁边都有一个加号,如果按下它,它将被“移动”到右侧窗格并显示在用户选择的选项下。

可以在每个选择的选项中放入多条记录。

我有点不确定解决这个问题的最佳方法。起初我正在考虑在 Javascript 中创建一个数组,每次单击加号都会将项目添加到数组中。当表单准备好提交时,使用 jQuery/Ajax 将数组传递给 php 函数。

【问题讨论】:

    标签: javascript arrays json multidimensional-array


    【解决方案1】:

    我建议采用这种结构:

    Options={
      'opt1':{},
      'opt2':{},
      'opt3':{}
    }
    

    你有这些记录

    //following is a structure view, not code
    1: Record #1
    2: Record #2
    3: Record #3
    4: Record #4
    

    当用户选择将record#2 附加到opt3 时,您可以:

    Options['opt3'][2]='Record #2';
    

    新的Options 对象: 选项={ “选择 1”:{}, 'opt2':{}, '选择3':{ 2:'记录#2' } }

    删除添加的选项很简单:

    delete Options['opt3'][2]
    

    【讨论】:

    • 虽然最初只有一个选项可用于添加一系列记录。当用户添加时,他们将在选项 1 下分组。然后用户可以选择创建一个新的分组,即 2 具有相同的记录,因此我们最终可以得到 1=>array(1, 2, 3), 2= >array(1,2,3) 等。与此一致,每个选项都有一个发布日期。
    • 如何创建选项并将其附加到数组中。
    • 然后最初您将拥有Options={},然后您将填写如下选项:Options['opt1']={},然后在其中填写:Options['opt1'][2]='Record #2';。如果发布日期是唯一标识选项的字符串,则可以将其用作索引而不是 'opt1'
    • 我可以通过 jQuery 加载方法传递它吗?与分配一样,包含所有记录的 div 应更新以删除添加的项目并更新右侧的相应 div。
    • 另外,所选选项的 ID 是我要分组的数组的键,Options[selectedOption]={} 会起作用吗?因为你的例子是一个字符串。
    【解决方案2】:

    我不得不用 javascript 中的数组做类似的事情,我使用了 splice method

    这是定义:

    splice() 方法在数组中添加和/或删除元素,并返回删除的元素。

    这就是我要开始的地方。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-03
      • 2017-09-13
      • 2014-05-01
      • 2015-10-25
      • 1970-01-01
      • 2017-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多