4

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

我有一个 .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(依此类推)

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

4

4 回答 4

11

使用地图并加入:

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

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

于 2013-07-09T13:47:55.907 回答
0

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

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());
});
于 2013-07-09T13:47:49.337 回答
0

试试这个:

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

});

于 2013-07-09T13:48:12.940 回答
0

改变

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++;
    });
});
于 2013-07-09T13:49:48.853 回答