hejianhuacn

          js中cloneNode()的使用

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

          Feedback

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

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

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

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

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

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

          # 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>  回復(fù)  更多評論   

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

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


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 沽源县| 抚宁县| 大方县| 玉田县| 会东县| 东乡族自治县| 额尔古纳市| 建德市| 信阳市| 象州县| 景泰县| 峡江县| 广州市| 贞丰县| 新田县| 武汉市| 易门县| 华宁县| 志丹县| 县级市| 长宁县| 贵定县| 周口市| 巩留县| 察雅县| 瓦房店市| 时尚| 灌阳县| 阳原县| 波密县| 开封市| 安平县| 浦北县| 怀柔区| 阿拉善盟| 张北县| 西盟| 晋城| 峨山| 高雄市| 临潭县|