【问题标题】:concatenating strings in .each loop在 .each 循环中连接字符串
【发布时间】:2013-07-07 03:43:32
【问题描述】:

这可能是一个愚蠢的问题,但我似乎无法得到它或在任何地方找到它。

我有一个 .each 函数,它返回页面上一堆 div 的 id,然后为它们分配一个数字。我需要将它们全部作为一个字符串以特定格式输出,这样我就可以将它们传递到数据库并将它们用作“sort_order”值。 (我通过数据库中的 sproc 将它们拆分)。

这是我的代码:

jQuery('#updateAllContentButton').click(function() {
    var count = 1;
 jQuery('.CommentaryItem').each(function() {
    var id = GetID(jQuery(this));
        var data_str = (id + ':' + count + '~');
        console.log(data_str);
        count++;
    });
});

这样会在单独的行上返回每个 data_str,但我需要它像这样返回它: 144:2~145:3~146:4~147:4~148:5(以此类推)

任何帮助将不胜感激,谢谢!

【问题讨论】:

    标签: javascript jquery string concatenation


    【解决方案1】:

    改变

    var data_str = (id + ':' + count + '~');
    

    data_str+ = (id + ':' + count + '~');
    

    完整代码

    jQuery('#updateAllContentButton').click(function() {
        var count = 1,
            data_str;
    
        jQuery('.CommentaryItem').each(function() {
            var id = GetID(jQuery(this));
            data_str += (id + ':' + count + '~');
            console.log(data_str);
            count++;
        });
    });
    

    【讨论】:

      【解决方案2】:

      使用map 并加入:

      jQuery('#updateAllContentButton').click(function() {
          console.log(jQuery('.CommentaryItem').map(function(i) {
              return GetID(jQuery(this)) + ':' + (i+1);
          }).get().join('~'));
      });
      

      请注意,您不必计算自己:大多数 jQuery 迭代函数都会为您完成。

      【讨论】:

      • 这个语法也可以在字符串连接(+)中调用。
      【解决方案3】:

      试试这个:

      jQuery('#updateAllContentButton').click(function() {
      var count = 1;
      var data_str = "";
      jQuery('.CommentaryItem').each(function() {
      var id = GetID(jQuery(this));
          data_str += (id + ':' + count + '~');
          console.log(data_str);
          count++;
      });
      

      });

      【讨论】:

      • 我的意思是在 data_str 上使用 += 而不是 = :)
      • 发布后我确实尝试过这种方式,但你必须在每个循环之前声明 data_str ,它最终会在最后添加一个额外的 ~ 。
      • 是的,我已经更正了:)dystroy仍然发布了最好的解决方案:)
      【解决方案4】:

      您可以为此使用数组。像这样……

      jQuery('#updateAllContentButton').click(function() {
          var count = 1;
          var arr = [];
       jQuery('.CommentaryItem').each(function() {
          var id = GetID(jQuery(this));
          var data_str = (id + ':' + count + '~');
          arr.push(data_str);
          //console.log(data_str);
          count++;
       });
       console.log(arr.join());
      });
      

      【讨论】:

        猜你喜欢
        • 2016-12-15
        • 2015-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-18
        • 2017-01-20
        • 2021-11-13
        • 1970-01-01
        相关资源
        最近更新 更多