Чтобы получить все значения в массиве:
var options = document.getElementById('selectId').options;
var values = [];
var i = 0, len = options.length;
while (i < len)
{
values.push(options[i++].value);
}
alert(values.join(', '));
Fiddle: http://jsfiddle.net/garreh/64pyb/1/
вау долгий путьчто-то короткое
Что ж, вы можете использовать цикл for, не намного короче, но более некрасиво;
for (var options = document.getElementById('selectId').options,
values, i = 0, len = options.length; i < len;i++)
values.push(options[i].value);
alert(values.join(', '));
Опять же, это позор, что вы не используете такую библиотеку, как jQuery.Вы могли бы сделать:
$('select > option').map(function() { return this.value; }).get();