Vad tror du om detta?
<script type="text/javascript">
<!--
var List = {
holder : null,
toRemove : null,
subLists : [],
init : function(holder){
this.holder = document.forms[ "holder" ];
},
add : function(pos){
var select = document.createElement( "select" );
for( var i=1; i < arguments.length-1; i+=2 ){
var option = document.createElement( "option" );
option.value = i;
option.innerHTML = arguments[ i+1 ];
select.appendChild( option );
}
this.subLists[ pos ] = select;
},
generate : function(o){
if( this.toRemove != null && this.toRemove != o.selectedIndex )
this.holder.removeChild( this.subLists[ this.toRemove ] );
this.holder.appendChild( this.subLists[ o.selectedIndex ] );
this.toRemove = o.selectedIndex;
}
};
// Det första värdet anger för vilken position i den ursprungliga
// listan dessa listor skall genereras. Parametrarna "sprak" anger
// vilket värde respektive alternativ skall ha och "Svemska", "Norska"
// o.s.v. är texten för själva alternativet
List.add(0, "sprak", "Svenska", "sprak", "Norrländska :)");
List.add(1, "sprak", "Norska");
List.add(2, "sprak", "Danska");
window.onload = function(){
List.init("holder");
};
//-->
</script>
...
<form name="holder">
<select onchange="List.generate(this)">
<option>Sverige</option>
<option>Norge</option>
<option>Danmark</option>
</select>
</form>
:)