我的页面上有一个多重select
框。option
我可以像这样轻松地获取 jQuery中所有选定子项的值:
$("#select").val();
这给了我一个这样的数组:
["Hello", "Test", "Multiple Words"]
现在,我想将此数组转换为以空格分隔的字符串,但还要将每个值中的各个单词用破折号连接起来,这样我就得到了:
"Hello Test Multiple-Words"
我该怎么做呢?
我的页面上有一个多重select
框。option
我可以像这样轻松地获取 jQuery中所有选定子项的值:
$("#select").val();
这给了我一个这样的数组:
["Hello", "Test", "Multiple Words"]
现在,我想将此数组转换为以空格分隔的字符串,但还要将每个值中的各个单词用破折号连接起来,这样我就得到了:
"Hello Test Multiple-Words"
我该怎么做呢?
var values = $("#select").val();
for (var i = 0; i < values.length; ++i) {
values[i] = values[i].replace(" ", "-");
}
var spaceDelimitedString = values.join(" ");
var result = $.map($("#select").val() || [], function (x) {
return x.replace(/\s/g, '-');
}).join(' ');
如果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/
这应该为您完成这项工作。
function combineWords(arr) {
var i, l;
for(i = 0, l = arr.length; i < l; i++) {
arr[i] = arr[i].replace(' ', '-') ;
}
return arr;
}
var vals = ["Hello", "Test", "Multiple Words"];
var result = $.map(vals, function(str){ return str.replace(/\s/g, '-') })
.join(' ');
这里有一个简单的衬里Array.map
:
var arr = ["Hello", "Test", "Multiple Words"];
arr.map(function(val) { return val.replace(' ', '-') }).join(' ');