質問: 二つのセレクトボックス間でのデータ移動 二つのセレクトボックス間でのデータのやり取りを行おうと思うのですが、 左右にセレクトボックスを設置して右から左、左から右といった感じで作成しようと思います。 そこでデータの受け渡しでセレクトボックスの上から値を追加していくことは可能なのでしょうか? それともし可能なのであれば具体的な方法を教えていただければとおもいます。 どうぞよろしくお願いいたします。
回答: #2です。 すでにあるコードを修正したいのなら、最初にそれを提示すべき。 機能のみで質問すれば、返ってくる回答は人それぞれ少しずつ違う。ましてや、仕様が曖昧な質問なら、回答は千差万別で当然。 さて、ご提示のコードをどうしたいのかが、まだ不明ですね。 1)「→←」を押した時にボックス内で項目が移動するようにするのか (#2,#3はそのように解釈している)、あるいは現状のままでよいのか。 2)今のものはそのままで、項目を追加した時に下に追加されているのを 前に追加するように修正しさえすればよいのか。 (#1,#2,#3ともご質問文の通り、先頭に追加するようにしている) 2)だけで良いのなら、現状の ops[ops.length] = new option(mop.text, mop.value); の部分が明示的に最後に追加していますので、その部分を修正すれば宜しいかと。 >皆様の回答大変参考になりました。 では、参考にして、活用しましょう。 #1~#3、それぞれ少しずつ違う考え方や指定方法で要素を追加していますが、実際に、その部分で利用しているメソッドはみな同じです。 利用しやすい考え方を流用するのがよろしいかと思います。 >具体的な方法を教えていただければ~ ↑のメソッドが具体的な方法に当たると言えるでしょう。insertbefore() ------------------------------------------- <おまけ> ・form要素の取得にhtml内の順番を使っていますが、この方法だとhtmlを修正するとスクリプトの修正が必要になる場合があります。(formの順を入れ替えたり、追加したりした場合した場合) idを振るなどして、ダイレクトに取得するのがよろしいかと。 ( getelementbyid('id') ) ・質問には関係ありませんが、前半のイベント設定部分(ie専用となっている部分)を一般化させたいのなら、#3様の回答に設定のヒントがあります。 参考になさってください。