我需要你的帮助。
我在下面有以下函数转换选择框内容并将它们转换为一个长字符串。
问题是一旦函数运行,就会在开头有一个逗号。
如何修改现有函数以便我可以在字符串的开头修剪/删除逗号
initial result: ,A,B,C,D,E,F
expected end result: A,B,C,D,E,F
function select2var(select) {
var x = document.getElementById(select).options
var values = []
for (var i=0; i < x.length; i++) {
values.push(x[i].value);
}
return values.join(",");
}
function test() {
document.getElementById('box').value = select2var('alphabet')
}
HTML标记:
<select id="alphabet">
<option value=""></option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="E">E</option>
<option value="F">F</option>
</select>
答案 0 :(得分:8)
不要添加空值:
if (x[i].value.length) {
values.push(x[i].value)
}
答案 1 :(得分:0)
您可以不添加空值,或者如果您有多个空值,则可以使用filter
:
// values = ['','A','B','','','C',...]
values = values.filter( function(v) {
// return 'false' when v is a false-coercing value, like the empty string
return !!v;
});
// values = ['A','B','C',...]
或更短版本(利用内置Boolean
功能)
values = values.filter( Boolean );