使用JavaScript增加或刪除table的行

來源:互聯網
上載者:User

       在前面HTML中自訂右鍵菜單功能一文中,已經完成滑鼠右鍵菜單功能。其中,“增加一行”,“刪除一行”功能表項目還沒有給出單擊後的功能。那麼,JavaScript怎樣實現這一項功能呢?在這裡,用到的參數及html對象不跟前面HTML中自訂右鍵菜單功能一文中相匹配,而是另起爐灶,僅做一個小測試。

 

整理思路:

1. 在首頁面上定義button1作為“增加一行”的觸發器,使用button1的onclick事件

2. 在首頁面上定義button2作為“刪除一行”的觸發器,使用button2的onclick事件

3. 定義一個“id=modifyrow” 的div1,用於放置“行”

4. 在div1裡面,定義一個“id=createrow” 的隱藏的div2容器,關鍵是把屬性值display設為none

5. 在div2裡面,定義一個“id=modifytable” 的table對象,配合完成對table增加行或刪除行的操作,在這裡定義一行

6. 編寫JavaScript指令碼函數,功能:單擊div2時將table對象show出來;單擊button1時table對象增加一行;單擊button2時table對象刪除一行

 

把握關鍵點:

根據上面的思路,關鍵點有兩點,一個是單擊button1時table對象增加一行,另一個是單擊button2時table對象刪除一行

 

分析所需參數:

     e: 註冊事件

     isShow: bool類型值

     _id: div標籤ID

 

首頁面html對象的定義:

       <input id="button1" type="button" value="增加一行" onClick="createrow();"/>
       <input id="button2" type="button" value="刪除一行" onClick="deleterow();"/>  
        <div id="modifyrow" align="center" style="height:auto; width:auto; display:table;" onclick="setPosition(event,true,'createrow')">
            <span>creatrow</span>
            <div id="createrow" style="display:none">
                <table align="center" width="1000px;" height="20px" border="2" id="modifytable">
                    <tr align="left">
                        <td align="left">
                            <br>
                            <br>
                        </td>
                    </tr>
                </table>
            </div>
        </div>

需要編寫指令碼function :

1. 實現功能:單擊div2時將table對象show出來

   function setPosition(e,isShow,_id){
        var oDiv=document.getElementById(_id);
        if(isShow){
             var isIe=navigator.appName.indexOf("Microsoft")!=-1?true:false;
             oDiv.style.top=isIe?event.clientY+"px":e.pageY+"px";
             var iLeft=isIe?event.clientX-100:e.pageX;
             oDiv.style.left=iLeft+"px";
             if(isShow) oDiv.style.display="";
       }
       else
        oDiv.style.display="none";
    }

2. 實現功能:單擊button1時table對象增加一行

            function createrow(){
                var tr = modifytable.insertRow(modifytable.rows.length);
                var td;
                for (var i = 0; i < modifytable.rows[0].cells.length; i++) {
                    td = tr.insertCell();
                    td.innerHTML = "          <br> <br>    ";
                }
            }

3. 實現功能:單擊button2時table對象刪除一行

            function deleterow(){
                var oDiv = document.getElementById("createrow");
                if (oDiv.style.display != "none") {
                    if (modifytable.rows.length > 1) {
                        modifytable.deleteRow(1);
                    }
                    else {
                        oDiv.style.display = "none";
                    }
                }
            }

 

實現效果:

1. 頁面載入後,單擊“create row”,載入一行。

2. 點擊button1,便可以增加行。

3. 點擊button2,便可以刪除行。

說明:當頁面上沒有行之後,如果想繼續添加或刪除行。首先,點擊create row,載入一行,之後,再進行添加或刪除行操作。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.