ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript操作の分析例 select element_javascriptスキル

JavaScript操作の分析例 select element_javascriptスキル

WBOY
WBOYオリジナル
2016-05-16 16:07:17956ブラウズ

この記事の例では、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 プログラミング設計に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。