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

substrの代わりにsubstringを使用してみましたか?例えば

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

動作しますか?

于 2010-12-24T17:13:33.180 に答える
0

代わりにこれ:

return Build;

これを書く:

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

変数に初期キャップを使用しないでください。

また、文字列はJSで不変であるため、

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

これはほとんどの言語で呼び出される汎用関数joinであり、ユーティリティ関数として分割する必要があります。

長さがゼロのリストの可能性を考慮に入れる必要があります。

于 2010-12-24T17:09:24.107 に答える