表格操作eventTable

---注意这里的demo中的css在这里被禁止了,出不出来,可以粘贴到本地运行查看情况---

实现效果demo

<button id="delect">删除</button> <button id="up">上移一行</button> <button id="down">下移一行</button><table id="gridview3"><tr><th>ID</th><th>Name</th><th>Gender</th><th>Birthday</th></tr><tr><td>1</td><td>刘德华</td><td>男</td><td>1985/1/1</td></tr><tr><td>2</td><td>刘若英</td><td>女</td><td>1987/3/1</td></tr><tr><td>3</td><td>张韶涵</td><td>女</td><td>1987/1/2</td></tr><tr><td>4</td><td>周杰伦</td><td>男</td><td>1982/5/12</td></tr></table><script type="text/javascript"> /** * Created by lenovo on 2017/1/24. */ /* * id:��ǰ�������id * hiddenRowArr����ʾҲ���ص��е�arr * selectMore:true||falseĬ��ֵΪfalse * */ function eventTable(id, hiddenRowArr, selectMore) { var self = this; this.id = document.getElementById(id); this.hiddenRowArr = hiddenRowArr || null; this.selectMore = selectMore || false; if (this.id) { this.onselectstart = function () { return false }; this._init(this.id); } } eventTable.prototype = { _init: function (id) { this._formatTable(id); id.className = "eventTable"; this.attachEvent(); this._format(); }, _formatTable: function (tableObject, border, cellSpacing, cellPadding, align) { if (border == null && isNaN(parseInt(border))) { border = 0; } else { border = parseInt(border); } if (cellSpacing == null && isNaN(parseInt(cellSpacing))) { cellSpacing = 0 } else { cellSpacing = parseInt(cellSpacing); } if (cellPadding == null && isNaN(parseInt(cellPadding))) { cellPadding = 0 } else { cellPadding = parseInt(cellPadding); } tableObject.border = border; tableObject.cellPadding = cellSpacing; tableObject.cellSpacing = cellPadding; if (align) tableObject.align = align; }, _format: function () { var self=this; var rowCount = this.id.rows.length; var tbHead = this.id.rows[0]; var cellCount = null; if (0 in tbHead.cells) { if (tbHead.cells[0].tagName.toUpperCase() == "TH") { } } for (var i = 1; i < rowCount; i++) { if (cellCount == null) { cellCount = this.id.rows[i].cells.length; } for (var cell = 0; cell < cellCount; cell++) { if (this.id.rows[i].cells[cell].className.indexOf('item-')>-1){ this.id.rows[i].cells[cell].className=this.id.rows[i].cells[cell].className.replace(/item-\d/,'item-' + ((i + 1) % 2)); }else this.id.rows[i].cells[cell].className = 'item-' + ((i + 1) % 2); } } }, //event attachEvent: function (event) { var self = this; var event = window.event || event; var rows = this.id.rows; var rowlength = rows.length; for (var i = 0; i < rowlength; i++) { rows[i].onclick = function () { self.selectRow(this) } rows[i].ondblclick = function () { self.DbClick(this) } } }, DbClick: function (row) { alert(111); }, Eclick: function () { return true }, selectRow: function (row) { var self = this; if (this.selectMore) { if (!this.RowArr) { this.RowArr = [] } if (this.judgeTrExit(row)) { this.RowArr.push(row); } if (this.RowArr.length == 0) { this.RowArr.push(row); } for (var i = 0, l = row.cells.length; i < l; i++) { if (row.cells[i].className.indexOf("selected") > -1) { row.cells[i].className = row.cells[i].className; } else { row.cells[i].className = 'selected ' + row.cells[i].className; } } } else { this.RowArr = []; this.RowArr.push(row); for (var rows = 1, rowsl = this.id.rows.length; rows < rowsl; rows++) { for (var cells = 0, cellsL = this.id.rows[rows].cells.length; cells < cellsL; cells++) { self.delectClass(self.id.rows[rows].cells[cells], "selected") } } for (var i = 0, l = row.cells.length; i < l; i++) { if (row.cells[i].className.indexOf("selected") > -1) { row.cells[i].className = row.cells[i].className; } else { row.cells[i].className = 'selected ' + row.cells[i].className; } } } }, judgeTrExit: function (row) { for (var j = 0; j < this.RowArr.length; j++) { if (this.RowArr[j].rowIndex == row.rowIndex) { return false; } } return true }, delectClass: function (el, css) { var attr = ""; var classNames = el.className.split(/\s+/); for (var i = 0, l = classNames.length; i < l; i++) { if (classNames[i]) { if (!(css == classNames[i])) { attr += classNames[i] + " "; } } } el.className = attr; }, operateRow: function (canshu) { // switch (canshu) { case "up": this.upRow(); break; case "down": this.downRow(); break; case "delectRow": this.decectRow(); } }, upRow: function () { var row = this.RowArr[0]; var rowIndex=row.rowIndex; var newCell,tempCell; if (rowIndex>=2){ var newTr=this.id.insertRow(rowIndex-1); for (var i=0;i<row.cells.length;i++){ newCell= newTr.insertCell(i); newCell.innerHTML = row.cells[i].innerHTML; newCell.className=row.cells[i].className; } this.id.deleteRow(rowIndex+1); this.RowArr[0]=newTr; this._format(); this.attachEvent(); } }, decectRow: function () { var row = this.RowArr[0]; this.id.deleteRow(row.rowIndex); this._format(); }, downRow: function () { var row = this.RowArr[0]; var rowIndex=row.rowIndex; var newCell,tempCell; if (rowIndex+2<=this.id.rows.length){ var newTr=this.id.insertRow(rowIndex+2); for (var i=0;i<row.cells.length;i++){ newCell= newTr.insertCell(i); newCell.innerHTML = row.cells[i].innerHTML; newCell.className=row.cells[i].className; } this.id.deleteRow(rowIndex); this.RowArr[0]=newTr; this.attachEvent(); this._format(); } } } </script><script type="text/javascript"> window.οnlοad=function(){ var bbb=new eventTable('gridview3'); document.getElementById('delect').οnclick=function(){ bbb.operateRow('delectRow') } document.getElementById('down').οnclick=function(){ bbb.operateRow('down') } document.getElementById('up').οnclick=function(){ bbb.operateRow('up') } } </script>运行

/**
/**
 * Created by lenovo on 2017/1/24.
 */
/*
 * id:表格的id
 * hiddenRowArr:arr
 * selectMore:true||false||默认为false
 * */
function eventTable(id, hiddenRowArr, selectMore) {
    var self = this;
    this.id = document.getElementById(id);
    this.hiddenRowArr = hiddenRowArr || null;
    this.selectMore = selectMore || false;
    if (this.id) {
        this.onselectstart = function () {
            return false
        };
        this._init(this.id);
    }
}
eventTable.prototype = {
    _init: function (id) {
        this._formatTable(id);
        id.className = "eventTable";
        this.attachEvent();
        this._format();
    },
    _formatTable: function (tableObject, border, cellSpacing, cellPadding, align) {
        if (border == null && isNaN(parseInt(border))) {
            border = 0;
        } else {
            border = parseInt(border);
        }
        if (cellSpacing == null && isNaN(parseInt(cellSpacing))) {
            cellSpacing = 0
        } else {
            cellSpacing = parseInt(cellSpacing);
        }
        if (cellPadding == null && isNaN(parseInt(cellPadding))) {
            cellPadding = 0
        } else {
            cellPadding = parseInt(cellPadding);
        }
        tableObject.border = border;
        tableObject.cellPadding = cellSpacing;
        tableObject.cellSpacing = cellPadding;
        if (align)
            tableObject.align = align;
    },
    _format: function () {
        var self=this;
        var rowCount = this.id.rows.length;
        var tbHead = this.id.rows[0];
        var cellCount = null;
        if (0 in tbHead.cells) {
            if (tbHead.cells[0].tagName.toUpperCase() == "TH") {
            }
        }
        for (var i = 1; i < rowCount; i++) {
            if (cellCount == null) {
                cellCount = this.id.rows[i].cells.length;
            }
            for (var cell = 0; cell < cellCount; cell++) {
                if (this.id.rows[i].cells[cell].className.indexOf('item-')>-1){
                    this.id.rows[i].cells[cell].className=this.id.rows[i].cells[cell].className.replace(/item-\d/,'item-' + ((i + 1) % 2));
                }else
                this.id.rows[i].cells[cell].className = 'item-' + ((i + 1) % 2);
            }
        }
    },
    //event
    attachEvent: function (event) {
        var self = this;
        var event = window.event || event;
        var rows = this.id.rows;
        var rowlength = rows.length;
        for (var i = 0; i < rowlength; i++) {
            rows[i].onclick = function () {
                self.selectRow(this)
            }
            rows[i].ondblclick = function () {
                self.DbClick(this)
            }
        }

    },
    DbClick: function (row) {
        alert(111);
    },
    Eclick: function () {
        return true
    },
    selectRow: function (row) {
        var self = this;
        if (this.selectMore) {
            if (!this.RowArr) {
                this.RowArr = []
            }
            if (this.judgeTrExit(row)) {
                this.RowArr.push(row);
            }

            if (this.RowArr.length == 0) {
                this.RowArr.push(row);
            }
            for (var i = 0, l = row.cells.length; i < l; i++) {
                if (row.cells[i].className.indexOf("selected") > -1) {
                    row.cells[i].className = row.cells[i].className;
                } else {
                    row.cells[i].className = 'selected ' + row.cells[i].className;
                }
            }
        }
        else {
            this.RowArr = [];
            this.RowArr.push(row);
            for (var rows = 1, rowsl = this.id.rows.length; rows < rowsl; rows++) {
                for (var cells = 0, cellsL = this.id.rows[rows].cells.length; cells < cellsL; cells++) {
                    self.delectClass(self.id.rows[rows].cells[cells], "selected")
                }

            }
            for (var i = 0, l = row.cells.length; i < l; i++) {
                if (row.cells[i].className.indexOf("selected") > -1) {
                    row.cells[i].className = row.cells[i].className;
                } else {
                    row.cells[i].className = 'selected ' + row.cells[i].className;
                }
            }

        }
    },
    judgeTrExit: function (row) {
        for (var j = 0; j < this.RowArr.length; j++) {
            if (this.RowArr[j].rowIndex == row.rowIndex) {
                return false;
            }
        }
        return true
    },
    delectClass: function (el, css) {
        var attr = "";
        var classNames = el.className.split(/\s+/);
        console.log(classNames)
        for (var i = 0, l = classNames.length; i < l; i++) {
            if (classNames[i]) {
                if (!(css == classNames[i])) {
                    attr += classNames[i] + " ";
                }
            }
        }
        console.log(attr)
        el.className = attr;

    },
    operateRow: function (canshu) {
        //
        switch (canshu) {
            case "up":
                this.upRow();
                break;
            case "down":
                this.downRow();
                break;
            case "delectRow":
                this.decectRow();
        }
    },
    upRow: function () {
        var row = this.RowArr[0];
        var rowIndex=row.rowIndex;
        var newCell,tempCell;
        if (rowIndex>=2){
            var newTr=this.id.insertRow(rowIndex-1);
            for (var i=0;i<row.cells.length;i++){
                newCell= newTr.insertCell(i);
                newCell.innerHTML = row.cells[i].innerHTML;
                newCell.className=row.cells[i].className;
                console.log(newCell.className);
            }
            this.id.deleteRow(rowIndex+1);
            this.RowArr[0]=newTr;
            this._format();
            this.attachEvent();
        }
    },
    decectRow: function () {
        var row = this.RowArr[0];
        this.id.deleteRow(row.rowIndex);
        this._format();

    },
    downRow: function () {
        var row = this.RowArr[0];
        var rowIndex=row.rowIndex;
        var newCell,tempCell;
        if (rowIndex+2<=this.id.rows.length){
            var newTr=this.id.insertRow(rowIndex+2);
            for (var i=0;i<row.cells.length;i++){
                newCell= newTr.insertCell(i);
                newCell.innerHTML = row.cells[i].innerHTML;
                newCell.className=row.cells[i].className;
            }
            this.id.deleteRow(rowIndex);
            this.RowArr[0]=newTr;
            this.attachEvent();
            this._format();
        }
    }
}

html

删除 
上移一行 
下移一行
IDNameGenderBirthday
1刘德华1985/1/1
2刘若英1987/3/1
3张韶涵1987/1/2
4周杰伦1982/5/12
window.οnlοad=function(){
       var bbb=new eventTable('gridview3');
        document.getElementById('delect').οnclick=function(){
            bbb.operateRow('delectRow')
        }
        document.getElementById('down').οnclick=function(){
            bbb.operateRow('down')
        }
        document.getElementById('up').οnclick=function(){
            bbb.operateRow('up')
        }

    }

转载于:https://www.cnblogs.com/heyinwangchuan/p/6347901.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值