每日一得

          不求多得,只求一得 about java,hibernate,spring,design,database,Ror,ruby,快速開發
          最近關心的內容:SSH,seam,flex,敏捷,TDD
          本站的官方站點是:顛覆軟件

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            220 隨筆 :: 9 文章 :: 421 評論 :: 0 Trackbacks
          key words: 動態樹 eval函數用法

          近期項目中需要在ilearning中做開發,用到大量純jsp模式的開發,當然javaScript也用了很多,看來近期要好好研究javascript了 :)

          一.樹
          這次要做一個樹,需要支持展開和放置checkbox,開始的時候打算找一個,后來發現沒有適合的,最后自己寫,其實也就是用到.style.display='none'或者.style.display='block'來支持展開
          顯示效果如下:
          樹
          <!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"
          "http://www.w3.org/TR/html4/loose.dtd"
          >
          <html>
          <head>
          <meta?http-equiv="Content-Type"?content="text/html;?charset=gb2312">
          <title>Tree</title>
          <script?language="javascript">
          function?show(IMG,DV)
          {
          ????
          if(DV.style.display=="none")
          ????{
          ????????DV.style.display
          ="block";
          ????????IMG.src
          ="manager.gif"
          ????}
          ????
          else
          ????{
          ????????DV.style.display
          ="none";
          ????????IMG.src
          ="manager.gif"????????
          ????}
          }
          var?display="none";
          var?i;
          function?showall()
          {
          ????
          var?divTags=document.getElementsByTagName("div");
          ????
          //alert(divTags[10].id.replace("DV",""));
          ????if(?display=="none"?)
          ????{
          ????????
          for(i=0;i<divTags.length;i++)
          ????????{
          ????????????divTags[i].style.display
          ="block";
          ????????????eval(
          "IMG"+divTags[i].id.replace("DV","")).src="images/btnDel.gif";
          ????????????display
          ="block"
          ????????}
          ????}
          ????
          else
          ????{
          ????????
          for(i=0;i<divTags.length;i++)
          ????????{
          ????????????divTags[i].style.display
          ="none";
          ????????????eval(
          "IMG"+divTags[i].id.replace("DV","")).src="images/btnAdd.gif";
          ????????????display
          ="none";
          ????????}
          ????}
          }
          </script>

          <SCRIPT?LANGUAGE="JavaScript">
          function?checkAll(str)
          {
          ??
          var?a?=?document.getElementsByName(str);
          ??
          var?n?=?a.length;
          ??
          for?(var?i=0;?i<n;?i++)
          ??a[i].checked?
          =?window.event.srcElement.checked;
          }
          function?checkItem(str)
          {
          ??
          var?e?=?window.event.srcElement;
          ??
          var?all?=?eval("document.form0."+?str);
          ??
          if?(e.checked)
          ??{
          ????
          var?a?=?document.getElementsByName(e.name);
          ????all.checked?
          =?true;
          ????
          for?(var?i=0;?i<a.length;?i++)
          ????{
          ??????
          if?(!a[i].checked){?all.checked?=?false;?break;}
          ????}
          ??}
          ??
          else?all.checked?=?false;
          }
          </SCRIPT>


          </head>

          <body>
          ??????
          <a?href="#"?ONCLICK="show(IMG001,DV001)">
          ??????????
          <img?id="IMG001"?src="manager.gif"?border="0"></a>
          ??????????
          <input?type="Checkbox"?name="All"?onclick="checkAll('cb')">
          ?第一層

          ????
          <!--Begin?of?2-->
          ????????????
          <DIV?id='DV001'?style='display:none'>
          ????????????
          &nbsp;&nbsp;<img?id="IMG0010"?src="user.gif"?border="0">
          ????????????
          <input?type="checkbox"?name="cb"?value="1"?>
          ??????????????? 101
          ?????????????????
          <br>??????
          ????????????
          &nbsp;&nbsp;<img?id="IMG0010"?src="user.gif"?border="0">
          ????????????
          <input?type="checkbox"?name="cb"?value="1"?>
          ??????????????? 102
          ????????????????
          <!--End?of?2-->
          ????????????
          </div>????
          ?
          <br>???????????????
          ???
          <a?href="#"?ONCLICK="show(IMG002,DV002)">
          ???????
          <img?id="IMG002"?src="manager.gif"?border="0">
          ???????
          </a>
          ???????
          <input?type="Checkbox"?name="fdasfdsafsd"?onclick="checkAll('cbb')"?>
          ?第二層

          ????
          <!--Begin?of?2-->
          ????????????
          <DIV?id='DV002'?style='display:none'>
          ????????????
          &nbsp;&nbsp;<img?id="IMG0011"?src="user.gif"?border="0">
          ????????????
          <input?type="checkbox"?name="cbd"?value="1"?id="cbb">
          ??????????????? 201
          ?????????????????
          <br>??????
          ????????????
          &nbsp;&nbsp;<img?id="IMG0011"?src="user.gif"?border="0">
          ????????????
          <input?type="checkbox"?name="cbd"?value="1"?id="cbb">
          ??????????????? 202
          ????????????????
          <!--End?of?2-->
          ???
          </div>????
          </body>
          </html>




          2.eval函數用法
          這次碰到一個問題,就是動態獲取某個id的值,比如document.formX.idX.value,其中idX是動態的,所以直接寫無法獲得,會提示找不到某變量,這時eval就派上用場了
          比如
          var?myObj?=?"document.formX."+idX;
          myObj.value?
          =?XXValue;

          詳細信息參考這里
          這里再提供幾個例子:
          function?simpleSwap()
          {
          ?
          var?the_image?=?prompt("change?parrot?or?cheese","");
          ?
          var?the_image_name?=?"window.document."?+?the_image;
          ?
          var?the_image_object?=?eval(the_image_name);
          ?the_image_object.src?
          =?"ant.gif";
          }

          function?tophide(id)????//id?indicates?menu
          {
          ????
          if?(top.topframeset.rows?==?"31,*")
          ????{
          ????????top.topframeset.rows?
          =?"86,*";
          ????????eval(id?
          +?"_icon.src="/imgs/collapse_up.gif'");
          ????????eval(id?+?
          "_icon.alt='Collapse?The?Head'");
          ????????head.style.display?=?
          "block"
          ????????}
          ????else
          ????{
          ????????top.topframeset.rows?=?
          "31,*";
          ????????eval(id?+?
          "_icon.src="/imgs/collapse_down.gif'");
          ????????eval(id?
          +?"_icon.alt='Expand?The?Head'");
          ????????head.style.display?
          =?"none"
          ????}
          }


          posted on 2006-05-16 22:39 Alex 閱讀(462) 評論(2)  編輯  收藏 所屬分類: web技術

          評論

          # re: javascript兩則:樹與eval函數 2006-06-03 22:09 紅旗的理想
          能不能把完整的選人代碼發給我學習啊,謝謝。
          cqpxm@126.com  回復  更多評論
            

          # re: javascript兩則:樹與eval函數 2006-07-21 10:10 匿名
          document.formX['id' + X].value不就完了,用得著eval嗎
          ---------------------------------------
          document.formX.idX.value,idX是動態的
          ----------------------------------------  回復  更多評論
            

          主站蜘蛛池模板: 墨玉县| 黑水县| 香港| 宣化县| 青铜峡市| 滨海县| 湟源县| 高碑店市| 思茅市| 新兴县| 临武县| 安仁县| 临潭县| 东海县| 胶南市| 香河县| 潜山县| 西林县| 乌什县| 绍兴市| 桐城市| 龙山县| 广州市| 汶上县| 伊春市| 南和县| 合江县| 永善县| 麦盖提县| 延长县| 泰州市| 鄂尔多斯市| 定兴县| 江油市| 福鼎市| 龙游县| 永登县| 喀喇沁旗| 楚雄市| 海兴县| 新泰市|