1

我需要你的帮助。

我在下面有以下函数,它可以将选择框的内容转换成一个长字符串。

问题是一旦函数运行,开头就有一个逗号。

如何修改现有函数,以便我可以在字符串开头修剪/删除逗号

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>
4

2 回答 2

8

不要添加空值:

if (x[i].value.length) {
   values.push(x[i].value)
}
于 2013-10-01T15:32:45.750 回答
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 );
于 2013-10-01T15:34:23.687 回答