js获得子节点, 获得tab转json值

//提取表格的值,JSON格式
    function GetTableData(table) {
        var tableData = new Array(); //创建数组
        alert("行数:" + table.rows.length); //弹出总行数
        for (var i = 1; i < table.rows.length; i++) {  //遍历每行
            tableData.push(GetRowData(table.rows[i])); //传递每行,
        }
        return tableData;
    }
    //获得该节点下Input的值
    function getchildNode(node) {
        var nodes = node.childNodes;
        for (var i = 0; i < nodes.length; i++) {
            //nodeName: "INPUT"
            if (nodes[i].nodeName == "INPUT") {
                return nodes[i].value;
            }
        }
        return null;
    }

    //提取指定行的数据,JSON格式
    function GetRowData(row) {
        var rowData = {}; //创建一个空对象
        for (var j = 0; j < row.cells.length; j++) {  //遍历该行的所有单元格
            if (j == 1 || j == 5) {  //第2列和第6列
                var key = "key" + j;
                var node = row.cells[j];
                var value = getchildNode(node);
                if (value == null) {
                   value= node.innerHTML;
                }
                rowData[key] = value; //为对象添加属性和添加值
            }
        }

        return rowData;  //返回该对象
    }

var table = document.getElementById("table1");
var t1 = GetTableData(table);
var newstr = JSON.stringify(t1); //返回一个新字符串

    //验证数据是否有误
    function check_table(table) {
        for (var i = 1; i < table.rows.length; i++) {  //遍历每行
            if (!check_table_cells(table.rows[i])) {
                layer.msg("SAP申请开票金额不对!");
                break;
            }                   
        }
    }
    function check_table_cells(row) {
        if (Number(row.cells[5].innerHTML) > Number(row.cells[4].innerHTML)) {
            return false;
        }
        return true;
    }

 

 

posted @ 2019-01-14 16:00  enych  阅读(644)  评论(0编辑  收藏  举报