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 回答