javascipt-dom編程 table對象 練習(2)

來源:互聯網
上載者:User

排名練習:向表格添加資料,

1、當編號遇到重複給予提示並且無法添加,2、而且按排名順序添加資料,3、可以動態刪除和修改,並把修改資料儲存起來

新手們動起手來自己練習練習吧。。。。加深對JS中對象的理解。

參考代碼:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><title>ggggg</title><link rel="stylesheet" type="text/css" href=""><meta http-equiv="content-type" content="text/html;charset=utf-8"><!--js代碼可以放置在任意位置,按照先後順序依次執行 一般放在head標籤之間--><script type="text/javascript">    /*插入資料*/    function insert(){                //獲得表格對象        var mytable=document.getElementById("table1");        //判斷插入是否重複的排名        //遍曆        //定義變數要插入的位置        var insertW=mytable.rows.length;        for(var i=1;i<mytable.rows.length;i++){            //取出每一行            var eRows=mytable.rows[i];            //判斷輸入的排名是否重複            if(eRows.cells[0].innerText==no.value){                window.alert("與排名 "+eRows.cells[0].innerText+" 重複");                return ;//阻止代碼往下面執行            }                        //進行排序 尋找要插入的位置            if(parseInt(no.value)>parseInt(eRows.cells[0].innerText)){                insertW=i;                //window.alert(insertW);            }        }                //排序後的插入        var eachRow=mytable.insertRow(insertW+1);            //每行添加資料        eachRow.insertCell(0).innerText=document.getElementById("no").value;        eachRow.insertCell(1).innerText=username.value;        eachRow.insertCell(2).innerText=nickname.value;        eachRow.insertCell(3).innerHTML="<a href='#' onclick='deleteRow(this)'>刪除</a>";        eachRow.insertCell(4).innerHTML="<a href='#' onclick='updateRow(this)'>修改</a>";    }    /*更新資料*/    function updateRow(obj){        //window.alert("ok");        var mytable=document.getElementById("table1");        //找到要修改的行        var index=obj.parentNode.parentNode.sectionRowIndex;        mytable.rows[index].cells[1].innerHTML="<input type='text' id='username'/>";        mytable.rows[index].cells[2].innerHTML="<input type='text' id='nickname'/>";        mytable.rows[index].cells[3].innerText="刪除";        mytable.rows[index].cells[4].innerHTML="<a href='#' onclick='save(this)'>儲存</a>";    }        /*更新後點擊儲存*/    function save(obj){        var mytable=document.getElementById("table1");        //找到要修改的行        var index=obj.parentNode.parentNode.sectionRowIndex;        mytable.rows[index].cells[1].innerText=document.getElementById("username").value;        mytable.rows[index].cells[2].innerText=document.getElementById("nickname").value;        mytable.rows[index].cells[3].innerHTML="<a href='#' onclick='deleteRow(this)'>刪除</a>";        mytable.rows[index].cells[4].innerHTML="<a href='#' onclick='updateRow(this)'>修改</a>";    }    /*刪除資料*/    function deleteRow(obj){        //window.alert("ok");        var mytable=document.getElementById("table1");        //找到當前列        //找到該刪除節點的父父節點<tr>並返回一個(TableRow 對象),從而取得該行對應的行號        //window.alert(obj.parentNode.parentNode.sectionRowIndex);        var index=obj.parentNode.parentNode.sectionRowIndex;        var del=window.confirm("確定刪除");        if(del){            mytable.deleteRow(index);            window.alert("刪除成功");        }    }</script></head><body>    <table id="table1" border="1">        <tr><td>排名</td><td>姓名</td><td>外號</td><td>刪除</td><td>修改</td></tr>        <tr><td>1</td><td>宋江</td><td>及時雨</td><td><a href="#" onclick='deleteRow(this)'>刪除</a></td><td><a href="#" onclick="updateRow(this)">修改</a></td></tr>        <tr><td>2</td><td>盧俊義</td><td>玉麒麟</td><td><a href="#" onclick='deleteRow(this)'>刪除</a></td><td><a href="#" onclick="updateRow(this)">修改</a></td></tr>        <tr><td>10</td><td>test</td><td>test</td></td><td><a href="#" onclick='deleteRow(this)'>刪除</a></td><td><a href="#" onclick='updateRow(this)'>修改</a></td></tr>    </table>    <br/><br/>    排名:<input id="no" type="text" name="no"><br/>    姓名:<input id="username" type="text" name="username"><br/>    外號:<input id="nickname" type="text" name="nickname"><br/>    <input type="button" value="添加" onclick="insert()"><br/></body></html>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.