hejianhuacn

          js中cloneNode()的使用

          ??????在web頁(yè)面中經(jīng)常需要出現(xiàn)許多完全一樣的控件項(xiàng),而需要控件的多少完全由用戶輸入量決定,在js中可以很容易的實(shí)現(xiàn)這點(diǎn),效果展示大多時(shí)候比語(yǔ)言來(lái)得更有魅力。
          <!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="%">請(qǐng)選擇性別</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) 評(píng)論(5)  編輯  收藏 所屬分類: js

          Feedback

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

          運(yùn)行有錯(cuò)。
          36行改為:td2.appendChild(document.getElementById("sexType").cloneNode(true));
            回復(fù)  更多評(píng)論   

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

          @yanggang
          改過(guò)來(lái)了,不好意思犯這樣的錯(cuò)誤  回復(fù)  更多評(píng)論   

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

          非常具有使用價(jià)值啊,更具有誘惑力的是在IE和FF下都能使用,不過(guò)你的程序在FF下不能運(yùn)行!  回復(fù)  更多評(píng)論   

          # 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="%">請(qǐng)選擇性別</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>  回復(fù)  更多評(píng)論   

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

          這樣的垃圾代碼  回復(fù)  更多評(píng)論   


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 青冈县| 社会| 应城市| 哈巴河县| 丰县| 酉阳| 衡南县| 泌阳县| 格尔木市| 东山县| 洪雅县| 阿拉善右旗| 微山县| 浪卡子县| 万盛区| 岑巩县| 民勤县| 青河县| 廊坊市| 台东市| 麟游县| 梁平县| 沁阳市| 渑池县| 岢岚县| 吴桥县| 营山县| 五原县| 班戈县| 富阳市| 周至县| 五河县| 泾源县| 太和县| 定安县| 吉木萨尔县| 旺苍县| 保山市| 新闻| 离岛区| 中超|