【问题标题】:jQuery insert var in front of a push?jQuery 在推送前插入 var?
【发布时间】:2014-05-21 22:30:12
【问题描述】:

我有一个超出我想象的谜题,因为我以为我理解它是如何工作的,但显然我不明白。下面的函数有columns.push($('#squad'+count).val());,其中包含"Squad " +count,所以你得到Squad 1 2 3 4 5 etc etc。 下一个推送包含名称,Bob, Joe, John, Mark, etc etc

所以现在下面会产生:

Squad 1|Bob,Joe,John,Mark|Squad 2|Cletus,Ray ray,Billy Joe|Squad 3|Fred,Barney,Wilma

我希望它输出:

Squad 1,Bob,Joe,John,Mark|Squad 2,Cletus,Ray ray,Billy Joe|Squad 3,Fred,Barney,Wilma

我这辈子都想不通。而且我知道它很简单,但是数小时的搜索将我带到了这里。任何帮助表示赞赏。

function getItems(exampleNr)
{
    var count = 0;
    var columns = [];
    $(exampleNr + ' ul.sortable-list').each(function(){
        columns.push($('#squad'+count).val());
        columns.push($(this).sortable('toArray').join(','));
        count++;
    });

    return columns.join('|');
}

【问题讨论】:

    标签: jquery function return push


    【解决方案1】:

    您将加入 Squad # 到同一个 columns 数组。你之前的代码产生了它的结果,因为columns

    • 小队 1
    • 鲍勃、乔、约翰、马克
    • 小队 2
    • 克莱图斯、雷·雷、比利·乔
    • 小队 3
    • 弗雷德、巴尼、威尔玛

    这就是他们用管道分隔的原因 (|)。

    要根据需要修复它,您需要 Squad # 以及其他名称。您可以通过将两行 columns.push 更改为这一行来实现这一点:

    columns.push( [$('#squad'+count).val()].concat($(this).sortable('toArray')).join(',') );
    

    使用 Squad # 有效地创建一个数组,并在末尾连接已排序的数组before 将它们与, 连接在一起。

    【讨论】:

      【解决方案2】:

      只需将两个pushs 合并,然后将两个数据合而为一。

      function getItems(exampleNr)
      {
          var count = 0;
          var columns = [];
          $(exampleNr + ' ul.sortable-list').each(function(){
              columns.push($('#squad'+count).val()+','+$(this).sortable('toArray').join(','));
              count++;
          });
      
          return columns.join('|');
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-25
        • 2017-01-18
        • 2011-11-14
        • 1970-01-01
        相关资源
        最近更新 更多