hejianhuacn

          js中cloneNode()的使用

          ??????在web頁面中經(jīng)常需要出現(xiàn)許多完全一樣的控件項(xiàng),而需要控件的多少完全由用戶輸入量決定,在js中可以很容易的實(shí)現(xiàn)這點(diǎn),效果展示大多時(shí)候比語言來得更有魅力。
          <!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 閱讀(11859) 評(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
          改過來了,不好意思犯這樣的錯(cuò)誤  回復(fù)  更多評(píng)論   

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

          非常具有使用價(jià)值啊,更具有誘惑力的是在IE和FF下都能使用,不過你的程序在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)航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 陈巴尔虎旗| 巴青县| 诸暨市| 苍南县| 彭州市| 六安市| 贵港市| 佛学| 乌拉特前旗| 梅河口市| 定安县| 龙里县| 滨海县| 泰州市| 肇源县| 天镇县| 陈巴尔虎旗| 南京市| 新昌县| 社会| 南华县| 苍山县| 巨野县| 余江县| 高唐县| 枣强县| 绥阳县| 凤城市| 凌源市| 遂宁市| 睢宁县| 新密市| 会泽县| 兴和县| 通城县| 东阿县| 禹州市| 夹江县| 鹤庆县| 高台县| 沙河市|