hejianhuacn

          js中cloneNode()的使用

          ??????在web頁面中經常需要出現許多完全一樣的控件項,而需要控件的多少完全由用戶輸入量決定,在js中可以很容易的實現這點,效果展示大多時候比語言來得更有魅力。
          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<html xmlns="<head>
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
          <title>控件cloneNode()方法的使用</title>
          <script language="javascript">
          ?i=1;
          ?function AddRow()
          ?{
          ???var tableObject=new Object();
          ???
          ???var isneed=true;
          ???
          ???tableObject=document.getElementById("CloneNodeShow");
          ???//判斷是否有必要添加新的輸入行
          ???for(var j=0;j<tableObject.all.tags("input").length;j++)
          ???{
          ????var inputs = tableObject.all.tags("input")[j];?
          ????if(inputs.type=="text" && inputs.value=="")
          ????{
          ?????isneed=false;
          ????}
          ???}
          ???if(isneed)
          ???{
          ????//添加一行???
          ????var newTR=tableObject.insertRow();
          ????var td0=newTR.insertCell();
          ????var td1=newTR.insertCell();
          ????var td2=newTR.insertCell();
          ????var td3=newTR.insertCell();
          ????
          ????td0.innerHTML=(++i)+'.';
          ????td1.innerHTML='<input type="text" name="username"/>';
          ????//true表示深度克隆
          ????var newSelect=document.getElementById("sexType").cloneNode(true);
          ????newSelect.id="sexType"+i;
          ????td2.appendChild(newSelect);
          ????td3.innerHTML='<input type="text" name="age" onchange="AddRow()"/>';???
          ???}
          ?}
          </script>
          </head>
          <body>
          <form>
          ?<table id="CloneNodeShow" border="2" bordercolor="#000000">
          ??<tr><th></th><th>姓名</th><th>性別</th><th>年齡</th></tr>
          ??<tr id="signTR"? >
          ???<td>1.</td>
          ???<td><input type="text" name="username"/></td>
          ???<td>
          ????<select name="sexType" id="sexType">
          ?????<option value="%">請選擇性別</option>
          ?????<option value="0">男</option>
          ?????<option value="1">女</option>
          ????</select>
          ???</td>
          ???<td><input type="text" name="age" onchange="AddRow()"/></td>
          ??</tr>
          ?</table>
          </form>
          </body>
          </html>

          posted on 2006-08-25 11:38 hejianhuacn 閱讀(11858) 評論(5)  編輯  收藏 所屬分類: js

          Feedback

          # re: js中cloneNode()的使用 2006-08-25 12:11 yanggang

          運行有錯。
          36行改為:td2.appendChild(document.getElementById("sexType").cloneNode(true));
            回復  更多評論   

          # re: js中cloneNode()的使用 2006-08-25 13:04 hejianhuacn

          @yanggang
          改過來了,不好意思犯這樣的錯誤  回復  更多評論   

          # re: js中cloneNode()的使用 2008-07-04 16:02 昨夜流星

          非常具有使用價值啊,更具有誘惑力的是在IE和FF下都能使用,不過你的程序在FF下不能運行!  回復  更多評論   

          # re: js中cloneNode()的使用 2009-09-18 16:14 asdf

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml">
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
          <title>控件cloneNode()方法的使用</title>
          <script language="javascript">
          var i=1;
          function AddRow()
          {
          var tableObject=new Object();

          var isneed=true;

          tableObject=document.getElementById("CloneNodeShow");
          //判斷是否有必要添加新的輸入行

          for(var j=0;j<tableObject.getElementsByTagName("input").length;j++)
          {
          var inputs = tableObject.getElementsByTagName("input")[j];

          if(inputs.type=="text" && inputs.value=="")
          {
          isneed=false;
          }
          }
          if(isneed)
          {
          //添加一行

          var newTR=tableObject.insertRow(tableObject.rows.length);
          var td0=newTR.insertCell(newTR.cells.length);
          var td1=newTR.insertCell(newTR.cells.length);
          var td2=newTR.insertCell(newTR.cells.length);
          var td3=newTR.insertCell(newTR.cells.length);

          td0.innerHTML=(++i)+'.';
          td1.innerHTML='<input type="text" name="username"/>';
          //true表示深度克隆
          var newSelect=document.getElementById("sexType").cloneNode(true);
          newSelect.id="sexType"+i;
          td2.appendChild(newSelect);
          td3.innerHTML='<input type="text" name="age" onchange="AddRow()"/>';
          }
          }
          </script>
          </head>
          <body>
          <form>
          <table id="CloneNodeShow" border="2" bordercolor="#000000">
          <tr><th></th><th>姓名</th><th>性別</th><th>年齡</th></tr>
          <tr id="signTR" >
          <td>1.</td>
          <td><input type="text" name="username"/></td>
          <td>
          <select name="sexType" id="sexType">
          <option value="%">請選擇性別</option>
          <option value="0">男</option>
          <option value="1">女</option>
          </select>
          </td>
          <td><input type="text" name="age" onchange="AddRow()"/></td>
          </tr>
          </table>
          </form>
          </body>
          </html>  回復  更多評論   

          # re: js中cloneNode()的使用 2013-10-28 09:50 34567

          這樣的垃圾代碼  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 毕节市| 河东区| 新泰市| 汉沽区| 兴海县| 新闻| 津市市| 家居| 四川省| 赞皇县| 建阳市| 深州市| 繁峙县| 二手房| 武冈市| 秦安县| 积石山| 黑龙江省| 随州市| 大荔县| 旬邑县| 雅安市| 黄平县| 万安县| 乌苏市| 华宁县| 宜阳县| 辽宁省| 清水县| 寿光市| 惠东县| 阳春市| 太仆寺旗| 西和县| 双城市| 文登市| 连南| 大同县| 本溪市| 沛县| 汝阳县|