0

ページに複数のselectボックスがあります。option次のように、jQuery で選択したすべての子の値を簡単に取得できます。

$("#select").val();

それは私に次のような配列を与えます:

["Hello", "Test", "Multiple Words"]

ここで、この配列をスペース区切りの文字列に変換し、各値の個々の単語をダッシュ​​で結合して、次のようにします

"Hello Test Multiple-Words"

どうすればそれを行うことができますか?

4

6 に答える 6

4
var values = $("#select").val();

for (var i = 0; i < values.length; ++i) {
    values[i] = values[i].replace(" ", "-");
}

var spaceDelimitedString = values.join(" ");
于 2013-01-30T21:01:58.387 に答える
2
var result = $.map($("#select").val() || [], function (x) {
    return x.replace(/\s/g, '-');
}).join(' ');
于 2013-01-30T21:05:51.070 に答える
1

Multiple-Wordsが asである場合Multiple Words、単純に を使用.joinして最終出力を as として取得できます"Hello Test Multiple Words"

そうでない場合は、次のようなループを記述して結果を取得できます。

var myList = ["Hello", "Test", "Multiple Words"];
var result = '';
for (var i = 0; i < myList.length; i++) {
   result += myList[i].replace(/\s/g, '-') + ' ';
}

デモ: http://jsfiddle.net/bmXk5/

于 2013-01-30T21:03:06.927 に答える
0

これはあなたのために仕事をするはずです。

function combineWords(arr) {
    var i, l;
    for(i = 0, l = arr.length; i < l; i++) {
        arr[i] = arr[i].replace(' ', '-') ;
    }
    return arr;
}
于 2013-01-30T21:02:25.393 に答える
0
var vals = ["Hello", "Test", "Multiple Words"];
var result = $.map(vals, function(str){ return str.replace(/\s/g, '-') })
  .join(' ');
于 2013-01-30T21:04:35.467 に答える
0

ここでは、次の単純なワンライナーを示しArray.mapます。

var arr = ["Hello", "Test", "Multiple Words"];
arr.map(function(val) { return val.replace(' ', '-') }).join(' ');
于 2013-01-30T21:05:32.370 に答える