JavierB, mil gracias!
como dijiste está muy fácil de entender, así que hice la función para bajar y además que conservara el value del option, aquí dejo el código como quedó:
ah, le puse unos text solo para probar que se quedaran con su respectivo value.
<html>
<head>
<script>
function subir(src)
{
indice=src.selectedIndex;
if (indice>0) {
texto=src.options[indice].text;
valor= src.options[indice].value;
texto1=src.options[indice-1].text;
valor1= src.options[indice-1].value;
selOpcion=new Option(texto);
src.options[indice-1]=selOpcion;
src.options[indice-1].value= valor;
selOpcion=new Option(texto1);
src.options[indice]=selOpcion;
src.options[indice].value= valor1;
}
}
function bajar(src)
{
indice = src.selectedIndex;
max_indice= 4;
if (indice < max_indice)
{
texto=src.options[indice].text;
valor= src.options[indice].value;
texto1=src.options[indice+1].text;
valor1= src.options[indice+1].value;
selOpcion=new Option(texto);
src.options[indice+1]=selOpcion;
src.options[indice+1].value= valor;
selOpcion=new Option(texto1);
src.options[indice]=selOpcion;
src.options[indice].value= valor1;
}
}
function este_indice(src)
{
mi_indice.value= src.selectedIndex;
mi_valor.value= src.value;
}
</script>
</head>
<body>
<select name="sel" size=6 onchange="este_indice(sel)">
<option value="1">uno</option>
<option value="2">dos</option>
<option value="3">tres</option>
<option value="4">cuatro</option>
<option value="5">cinco</option>
</select>
<input type=text name=mi_indice>
<input type=text name=mi_valor>
<input type="button" value="Subir" onClick="subir(sel)">
<input type="button" value="Bajar" onClick="bajar(sel)">
</body>
</html>
Nuevamente gracias y salu2,