0

我想问的是,当我.each在 jQuery 中使用一个字符串构建时,通过这个:

$('.list :checkbox').each(function()
{
    var type = $(this).attr('value');
    Build += type + ', ';

    return Build;
});

但是现在我需要删除最后一个“,”(不带引号),因为它会生成这样的列表:

Item 1, Item 2, Item 3, Item 4, Item 5,

然后必须将它添加到html()运行良好的函数中,但是当尝试删除最后一个“,”时,这样做不起作用:

Build.substr(-1);

$('#list-box').html(Build);

但这行不通。

4

6 回答 6

2

你可以用这样的东西来简化你的代码:

(更新)

var arr = $(":checkbox").map(function() {
    return this.value;
}).get();


$('#list-box').html(arr.join(","));

在这里试试:http: //jsfiddle.net/andrewwhitaker/rXB2K/ (也更新了)

  • 使用该map()函数将 jquery 结果数组转换为复选框值数组。
  • 调用join(),用逗号分隔每个值。
于 2010-12-24T17:13:20.707 回答
1

@YouBook:试试

Build.substr(0, Build.length - 1);

反而。

于 2010-12-24T17:10:08.387 回答
0

取而代之的是:

return Build;

写这个:

return Build.substr(0, Build.length-1);
于 2010-12-24T17:17:58.387 回答
0

您是否尝试过使用 substring 而不是 substr?例如

Build.substring(Build.length - 1);
于 2010-12-24T17:11:39.147 回答
0
Build = Build.slice(0,-1);

作品?

于 2010-12-24T17:13:33.180 回答
0

不要对变量使用初始上限。

此外,字符串在 JS 中是不可变的,所以它是

   build = build.substring(0, b.length-1)

这是在大多数语言中调用的通用函数join,您应该将其分解为实用函数。

您应该考虑到零长度列表的可能性。

于 2010-12-24T17:09:24.107 回答