码迷,mamicode.com
首页 > 其他好文 > 详细

研究 Table DOM对象的属性和方法

时间:2015-01-02 12:17:20      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:

【课程】web2.0程序设计
【作业要求】建立一个网页,放置一个 table 元素和一个 Input 按钮,研究 Table DOM对象的属性和方法,用 JavaScript 实现 Table 插入行、删除行、交换两行内容。(仅使用 DOM 原生对象,且适用 IE 和 Chrome)
【参考文档】table dom 参考手册

 

1.首先按照要求,建立一个网页 Test Table Dom(a table about fruits),假设功能是用来储存一家水果店的账单吧,存有水果店的水果和相应价钱,老板可以增加水果条目,删除水果条目,还能进行排序;

放置一个table元素,为了研究Table Dom的属性和方法,这里我还在table的每一行放置了delete按钮,以及在table下方放置叻insert按钮,还有一个对价格进行升序排序的sort按钮。

<!DOCTYPE html>
<html>
    <head>
        <title>Test Table Dom</title>
        <meta charset="iso-8859-1" />
        <script src="table.js" type="text/javascript"></script>
    </head>
<body>
    <h1 style="text-align:center">A Table About Fruits</h1>
    <table id= "main"  border="1" style="text-align:center">
        <tr>
            <td>Name</td><td>Price($)</td><td>Delete</td>
        </tr>
        <tr>
            <td>apple</td><td>5.00</td><td><input type="button" value="delete" id="delete"></td>
        </tr>
    </table>
    <br>
    New Kind:<input type="text" id="name"> Price:<input type="text" id="price">
    <input type="button" id="insert" value="insert">
    <br>
    <input type="button" id="sort" value="sort">
</body>

初始页面如下:

技术分享

表格增加行的效果:

技术分享

 

表格进行排序的效果:

技术分享

2.首先要清楚要求原生实现的话,获取元素只有三种方法,

getElementById ,getElementsByName ,getElementsByTagName

而表格主要会用到的增删查的属性和方法是:deleteRow(index)   insertRow(insert)   insertCel[]  lcells[]    rows[]

其中排序我是用自己写的冒泡排序来实现的,要交换两行的时候,我直接访问innerHTML来实现的。

 

JS代码如下:

window.onload=function() {
    document.getElementById("insert").onclick=Insert;
    document.getElementById("sort").onclick=Sort;
    var arr=document.getElementsByTagName("input");
    for (var i = 0; i < arr.length; i++) {
        if(arr[i].id=="delete")
            arr[i].onclick=Delete;
    }
    var m;
    m += 1;
    m = 0;
};

function Insert() {
    var x = document.getElementById("main").insertRow(-1);
    var y = x.insertCell(-1);
    var z = x.insertCell(-1);
    var w = x.insertCell(-1);
    y.innerHTML=document.getElementById("name").value;
    z.innerHTML=document.getElementById("price").value;
    w.innerHTML = "<input value=‘delete‘ type=‘button‘ id=‘delete‘/>";
    w.children[0].onclick=Delete;
    var m;
    m = 0;
    m++;
}

function Delete() {
    var i =this.parentNode.parentNode.rowIndex;
    document.getElementById("main").deleteRow(i);
}

function Sort() {
    var arr=document.getElementById("main").rows;
    for (var i=0; i <arr.length-1; i++) {
        for (var j=1; j < arr.length-1-i; j++) {
            if (parseInt(arr[j].cells[1].innerHTML) > parseInt(arr[j+1].cells[1].innerHTML)) {
                var tmp1 = arr[j].cells[0].innerHTML;
                var tmp2 = arr[j].cells[1].innerHTML;
                arr[j].cells[0].innerHTML=arr[j+1].cells[0].innerHTML;
                arr[j].cells[1].innerHTML=arr[j+1].cells[1].innerHTML;
                arr[j+1].cells[0].innerHTML=tmp1;
                arr[j+1].cells[1].innerHTML=tmp2;  
            }
        }
    }
}

 

tips:原生JS 要研究HTML Table Dom ,w3的手册就够用叻

 

研究 Table DOM对象的属性和方法

标签:

原文地址:http://www.cnblogs.com/zengyh-1900/p/4198226.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!