<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    小菜毛毛技術(shù)分享

    與大家共同成長(zhǎng)

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      164 Posts :: 141 Stories :: 94 Comments :: 0 Trackbacks
     記得以前面試的時(shí)候遇到過這樣一個(gè)問題:有一個(gè)表格,然后有4個(gè)輸入框,一個(gè)合并 按鈕,輸入框是這樣的,從第幾行到第幾行,從第幾列到第幾列,然后點(diǎn)擊按鈕,合并 。當(dāng)時(shí)我從學(xué)校出來,js知識(shí)只是知道一些,根本做不到!現(xiàn)在想想,其實(shí)這個(gè)問題也還是考基礎(chǔ)功夫是否扎實(shí)!大家有興趣可以自己做做看,測(cè)下自己是不是能夠做出來。題目的截圖:

     

    第1/1列 第1/2列 第1/3列 第1/4列 第1/5列
    第2/1列 第2/2列 第2/3列 第2/4列 第2/5列
    第3/1列 第3/2列 第3/3列 第3/4列 第3/5列
    第4/1列 第4/2列 第4/3列 第4/4列 第4/5列
    第5/1列 第5/2列 第5/3列 第5/4列 第5/5列
    第6/1列 第6/2列 第6/3列 第6/4列 第6/5列
    第7/1列 第7/2列 第7/3列 第7/4列 第7/5列
    第8/1列 第8/2列 第8/3列 第8/4列 第8/5列
    第9/1列 第9/2列 第9/3列 第9/4列 第9/5列
    從第 行到

    從第 列到

     

         現(xiàn)在做這個(gè)問題,看起來簡(jiǎn)單,但我還是花了很長(zhǎng)時(shí)間,可能是我的思路不對(duì)吧?主要就是用js來操作html,我現(xiàn)在實(shí)現(xiàn)了添加行,刪除行,添加列,刪除列 ,但合并單元格卻不能完整的實(shí)現(xiàn)主要是表格會(huì)亂掉 。現(xiàn)在把這個(gè)問題發(fā)出來,有興趣的同仁可以自己在有空的時(shí)候研究下,看自己能不能做出來!主要是合并單元格的問題!也可以幫我看看合并單元格的問題。

     我自己實(shí)現(xiàn)的部分代碼:

    html部分 寫道
    <body onLoad="init();">

    <table id="table" align="center">
    <tbody id="newbody"></tbody>

    </table>
    <div>
    <table width="800px" border="1px" align="center">
      <tr><td align="center"><input type="button" id="addRow" name="addRow" onClick="addRow();" value="添加行"/></td>
        <td align="center"><input type="button" id="delRow" name="delRow" onClick="removeRow();" value="刪除行"/></td>
      </tr>
      <tr><td align="center"><input type="button" id="delCell" name="delCell" onClick="removeCell();" value="刪除列"/></td>
        <td align="center"><input type="button" id="addCell" name="addCell" onClick=" addCell();" value="添加列"/></td>
     </tr>
     <tr><td align="center" colspan="2"><input type="button" id="addRows" name="addRows" onClick="addRow_withInsert();" value="添加行"/></td></tr>
    </table>
    </div>
    <div>
    <table width="800px" border="1px" align="center">
       <tr><td>從第<input type="text" id="beginRow" name="beginRow" value=""/> 行到   <input type="text" name="endRow" id="endRow" value=""/> 行</td><td rowspan="2" id="test"><input type="button" name="hebing" id="hebing" value="合并" onClick="rebulid();"/> </td></tr>
      <tr><td>從第<input type="text" name="beginCol" id="beginCol" value=""/> 列到<input type="text" name="endCol" id="endCol" value=""/> 列</td></tr>
    </table>
    </div>
    </body>
     
    生成表格,采用appendChild 寫道
    function init(){
    _table=document.getElementById ("table");
    _table.border="1px";
    _table.width="800px";

    for(var i=1;i<10;i++){
      var row=document.createElement ("tr");
      row.id=i;
      for(var j=1;j<6;j++){
       var cell=document.createElement ("td");
       cell.id =i+"/"+j;
       cell.appendChild(document.createTextNode ("第"+cell.id+"列"));
       row.appendChild (cell);
      }
      document.getElementById("newbody").appendChild (row);
     }
    }
     
    添加行,使用appendChild方法 寫道
    function addRow(){
    var length=document.getElementById("table").rows.length;
    /*document.getElementById("newbody").insertRow(length);
      document.getElementById(length+1).setAttribute("id",length+2);*/
      var tr=document.createElement("tr");
      tr.id=length+1;
      var td=document.createElement("td");

      for(i=1;i<4;i++){
        td.id=tr.id+"/"+i;
        td.appendChild(document.createTextNode("第"+td.id+"列"));
        tr.appendChild(td);

      }

      document.getElementById("newbody").appendChild (tr);
    }
     
    添加行的另一種方法insertRow 寫道
    function addRow_withInsert(){
       varrow=document.getElementById("table").insertRow( document.getElementById("table").rows.length);
     var rowCount =document.getElementById("table").rows.length;

     var countCell=document.getElementById("table").rows.item(0).cells.length;
     for(var i=0;i<countCell;i++){
       var cell=row.insertCell(i);

       cell.innerHTML="新"+(rowCount)+"/"+(i+1)+"列";
       cell.id=(rowCount)+"/"+(i+1);

      }

    }
     
    刪除行,采用deleteRow(row Index) 寫道
    /*刪除行,采用deleteRow(row Index)*/
    function removeRow(){
    /* var row=document.getElementById("2");
      var index=row.rowIndex;
      alert(index);*/
       document.getElementById("newbody").deleteRow(document.getElementById(document.getElementById("table").rows.length).rowIndex);
    }
     
    添加列,采用insertCell(列位置)方法 寫道
    function addCell(){
    /*document.getElementById("table").rows.item(0).cells.length
    用來獲得表格的列數(shù)
    */
    for(var i=0;i<document.getElementById("table").rows.length;i++){
      var cell=document.getElementById("table").rows[i].insertCell(2);
      cell.innerHTML="第"+(i+1)+"/"+3+"列";

    }

    }
     
    刪除列,采用deleteCell(列位置)的方法 寫道
    /*刪除列,采用deleteCell(列位置)的方法*/
    function removeCell(){
      for(var i=0;i<document.getElementById("table").rows.length;i++){
        document.getElementById("table").rows[i].deleteCell(0);
      }
    }
     
    合并單元格(未實(shí)現(xiàn)) 寫道
    我的代碼有問題,主要是表格會(huì)亂掉,一直沒有改好
    function rebulid(){
    var beginRow=document.getElementById("beginRow").value;/*開始行*/
    var endRow=document.getElementById("endRow").value;/*結(jié)束行*/

    var beginCol=document.getElementById("beginCol").value;/*開始列*/
    var endCol=document.getElementById("endCol").value;/*結(jié)束列*/

    var tempCol=beginRow+"/"+beginCol;/*定位要改變屬性的列*/
    alert(tempCol);
    var td=document.getElementById(tempCol);

    /*刪除要合并的單元格*/
    for(var x=beginRow;x<=endRow;x++){
      for(var i=beginCol;i<=endCol;i++){
        if(x==beginRow){

          document.getElementById("table").rows[x].deleteCell(i+1);

        }
        else{

          document.getElementById("table").rows[x].deleteCell(i);

        }

       }
      }
       td.rowSpan=(endRow-beginRow)+1;
    }
     
    posted on 2009-06-04 09:45 小菜毛毛 閱讀(43618) 評(píng)論(4)  編輯  收藏 所屬分類: HTML+div+css實(shí)踐

    Feedback

    # re: js操作html的table,包括添加行,添加列,刪除行,刪除列 2011-12-23 10:43 superchangme
    function merge(){
    var beginRow=document.getElementById("beginRow");
    var endRow=document.getElementById("endRow");
    var beginCol=document.getElementById("beginCol");
    var endCol=document.getElementById("endCol");
    var inputobj=new Array(beginRow,endRow,beginCol,endCol);
    var rowspan=endRow.value-beginRow.value+1;
    var colspan=endCol.value-beginCol.value+1;
    if(beginRow.value!=''&&endRow.value!=''&&beginCol.value!=''&&endCol.value!=''){
    for(i=endRow.value;i>beginRow.value-1;i--){
    for(j=endCol.value;j>beginCol.value-1;j--){
    if(i==beginRow.value&&j==beginCol.value){}
    else{
    var row=i;
    var col=j-1;
    var obj=document.getElementById(row);
    if(obj)obj.deleteCell(col);

    }
    }
    }
    var obj=document.getElementById(beginRow.value+"/"+beginCol.value);
    obj.setAttribute("rowspan",rowspan);
    obj.setAttribute("colspan",colspan);
    }else{
    var i=0;
    while(i<inputobj.length){
    if(inputobj[i].value==''){
    inputobj[i].focus();
    beark;
    }else{
    i++;
    }
    }

    }
    }  回復(fù)  更多評(píng)論
      

    # re: js操作html的table,包括添加行,添加列,刪除行,刪除列 2011-12-23 17:53 superchangme
    /**改進(jìn)版,之前的不能合并有跨越項(xiàng)的**/
    function merge(){
    var beginRow=document.getElementById("beginRow");
    var endRow=document.getElementById("endRow");
    var beginCol=document.getElementById("beginCol");
    var endCol=document.getElementById("endCol");
    var inputobj=new Array(beginRow,endRow,beginCol,endCol);
    var rowspan=endRow.value-beginRow.value+1;
    var colspan=endCol.value-beginCol.value+1;
    if(beginRow.value!=''&&endRow.value!=''&&beginCol.value!=''&&endCol.value!=''){
    for(i=endRow.value;i>beginRow.value-1;i--){
    for(j=endCol.value;j>beginCol.value-1;j--){
    if(i==beginRow.value&&j==beginCol.value){}
    else{
    var row=i;
    var col=j-1;
    if(document.getElementById(i+"/"+j)!=null){
    var obj=document.getElementById(i+"/"+j);
    obj.parentNode.removeChild(obj);
    }
    }
    }
    }
    var obj=document.getElementById(beginRow.value+"/"+beginCol.value);
    obj.setAttribute("rowspan",rowspan);
    obj.setAttribute("colspan",colspan);
    }else{
    var i=0;
    while(i<inputobj.length){
    if(inputobj[i].value==''){
    inputobj[i].focus();
    beark;
    }else{
    i++;
    }
    }
    }
    }   回復(fù)  更多評(píng)論
      

    # re: js操作html的table,包括添加行,添加列,刪除行,刪除列 2013-09-05 16:50 合并
    obj.setAttribute("rowspan",rowspan); 要大寫
    obj.setAttribute("rowSpan",rowspan);

      回復(fù)  更多評(píng)論
      

    # re: js操作html的table,包括添加行,添加列,刪除行,刪除列 2015-10-29 09:51 菊花菊花姐
    共和國(guó)分隔符  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 久久成人免费电影| 亚洲国产精品成人精品无码区在线| 国内少妇偷人精品视频免费| 国产天堂亚洲国产碰碰| 亚洲91精品麻豆国产系列在线| 亚洲日本一区二区三区在线| vvvv99日韩精品亚洲| 亚洲中文无码永久免费 | 成年女人午夜毛片免费视频| 日本在线免费播放| 久久精品免费网站网| 在线观看亚洲精品专区| 亚洲中文无码a∨在线观看| 亚洲AV无码一区二区乱孑伦AS| 久久久精品国产亚洲成人满18免费网站| 日韩成人在线免费视频| 69成人免费视频无码专区| aa级一级天堂片免费观看| 亚欧在线精品免费观看一区| 久久狠狠躁免费观看2020| av永久免费网站在线观看| 韩日电影在线播放免费版| h视频免费高清在线观看| 深夜福利在线视频免费| 99亚洲乱人伦aⅴ精品| 亚洲AV无码一区二区一二区| 亚洲午夜无码久久| 亚洲人成网站在线在线观看| 最新国产成人亚洲精品影院| 亚洲人成免费电影| 亚洲综合校园春色| 亚洲综合一区二区三区四区五区| 亚洲色大成网站www永久| 亚洲啪啪免费视频| 亚洲精品中文字幕无乱码麻豆| 亚洲中文字幕一二三四区苍井空| 中文字幕亚洲情99在线| 亚洲综合久久精品无码色欲| 亚洲狠狠色丁香婷婷综合| 亚洲AV日韩AV一区二区三曲 | 免费高清小黄站在线观看|