この記事の例では、javascript を使用して select 要素を操作する方法について説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです。
ここでは、select 要素に対する js の操作に慣れてみましょう。HTML ページに、select 要素と送信ボタンを含むフォームを作成します。
選択内の項目が選択されているときにテキストを変更し、選択内のすべての項目のテキストが変更された後にそれらを復元します。
送信を押すとウィンドウ自体を閉じます。コードは次のとおりです:
<!DOCTYPE html> <html> <head> <title>duang for select elements</title> <script type="text/javascript"> function do_change(elt){ var text = elt[elt.selectedIndex].innerHTML; if(!text.match(/\[/)) elt[elt.selectedIndex].innerHTML += " [duang]"; var is_all_seleted = true; for(var i=0;i<elt.length;++i){ if(!elt[i].innerHTML.match(/\[/)){ is_all_seleted = false; break; } } if(is_all_seleted){ alert("all duang!!!\nand reset it!!!"); for(var i=0;i<elt.length;++i){ elt[i].innerHTML = elt[i].innerHTML.replace(/\s\[.*\]/,"") } } } </script> </head> <body> <form id="frm_main" action="#" method="post"> <select id="slt" onchange="do_change(this);"> <option value="opt_1">opt A</option> <option value="opt_2">opt B</option> <option value="opt_3">opt C</option> <option value="opt_4">opt D</option> <option value="opt_5">opt E</option> </select> <input type="submit" value="close window" onclick="window.close();"/> </form> </body> </html>
Firefox では、最初はウィンドウ自体を閉じることができないようでしたが、後で about:config の dom.allow_scripts_to_close_windows を true に設定できることがわかりました。
各選択のオプションが不規則に変更される場合、それを処理するために on_change_ex を作成できます。コードは次のとおりです。
function do_change_ex(me){ var text = me[me.selectedIndex].innerHTML; if(!text.match(/\[/)){ me[me.selectedIndex].text_bak = me[me.selectedIndex].innerHTML; me[me.selectedIndex].innerHTML += " [duang]"; me[me.selectedIndex].is_changed = true; } var is_all_seleted = true; for(var i=0;i<me.length;++i){ if(!me[i].is_changed){ is_all_seleted = false; break; } } if(is_all_seleted){ alert("all duang!!!\nand reset it!!!"); for(var i=0;i<me.length;++i){ me[i].innerHTML = me[i].text_bak; me[i].is_changed = false; } } }
この記事が皆様の JavaScript プログラミング設計に役立つことを願っています。