Tu código tendrá un problema grave: Cuando deselecciones un option, los otros selects no se enterarán y no lo añadirán. Asi que hay que guardar los option marcados.
Código Javascript
:
Ver originalvar equipos=[
["Barcelona","Barcelona"],
["Madrid","Real Madrid"],
["Valencia","Valencia"],
["Malaga","Malaga"],
["Levante","Levante"],
["Atletico","Atletico de Madrid"],
["Mallorca","Mallorca"],
["Athletic","Athletic de Bilbao"],
["Osasuna","Osasuna"],
["Sevilla","Sevilla"],
["Betis","Betis"],
["Getafe","Getafe"],
["Espanyol","Espanyol"],
["RealSociedad","Real Sociedad"],
["Granada","Granada"],
["Rayo","Rayo Vallecano"],
["Zaragoza","Zaragoza"],
["Sporting","Sporting"],
["Racing","Racing de Santander"]
];
var elegidos=[];
Array.prototype.contiene= function(obj,pos) {
var i = this.length;
while (i--)
{
if (this[i][0] == obj && this[i][1]!=pos)
{
return true;
}
}
return false;
}
function crearOptions(marcado,pos){
var cadena="<option value='se'>Seleccione Equipo</option>";
var n = equipos.length;
for (var i=0;i<n;i++)
{
if (elegidos.contiene(equipos[i][0],pos)) continue;
cadena+="<option "+((marcado==equipos[i][0])?"selected='selected'":"")+" class='"+equipos[i][0]+"' value='"+equipos[i][0]+"'>"+equipos[i][1]+"</option>";
}
return cadena;
}
function llenarElegidos(){
elegidos=[];
for (var i=0;i<10;i++)
{
select=document.getElementById("equipo"+i);
if (select.value!="se")
{
elegidos.push([select.value,i]);
}
}
}
function enlazarChange(){
for (var i=0;i<10;i++)
{
select=document.getElementById("equipo"+i);
select.onchange=function(){
llenarElegidos();
llenarSelects();
};
}
}
function llenarSelects(){
var cadena;
for (var i=0;i<10;i++)
{
select=document.getElementById("equipo"+i);
cadena=crearOptions(select.value,i);
select.innerHTML=cadena;
}
}
window.onload=function(){
elegidos=[];
enlazarChange();
llenarSelects();
}
Para verlo en vivo:
http://jsfiddle.net/VUjqb/