Javascript 在每个循环中连接字符串

Javascript 在每个循环中连接字符串,javascript,jquery,string,concatenation,Javascript,Jquery,String,Concatenation,这可能是一个愚蠢的问题,但我似乎找不到,也找不到任何地方 我有一个.each函数,它返回页面上一堆div的id,然后给它们分配一个数字。我需要将它们作为一个字符串以特定格式输出,这样我就可以将它们传递到数据库,并将它们用作“排序顺序”值。(我通过数据库中的存储过程将其拆分) 这是我的密码: jQuery('#updateAllContentButton').click(function() { var count = 1; jQuery('.CommentaryItem').each(

这可能是一个愚蠢的问题,但我似乎找不到,也找不到任何地方

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

这是我的密码:

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++;
    });
});
这会在单独的一行上返回每个数据,但我需要它像这样返回: 144:2~145:3~146:4~147:4~148:5(依此类推)


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

您可以使用一个数组。像这样

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());
});
使用并加入:

jQuery('#updateAllContentButton').click(function() {
    console.log(jQuery('.CommentaryItem').map(function(i) {
        return GetID(jQuery(this)) + ':' + (i+1);
    }).get().join('~'));
});
请注意,您不必自己计算:大多数jQuery迭代函数都会为您计算。

尝试以下方法:

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++;
});
}))

变化

var 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++;
    });
});

我的意思是在数据上使用+=而不是仅仅使用=:)发布后,我确实尝试过这种方法,但是你必须在每个循环之前声明数据,最后它会在末尾添加一个额外的~是的,我已经纠正了:)最好的解决方案仍然是由dystroy发布:)这个语法也可以在字符串连接(+)中调用。
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++;
    });
});