zoukankan      html  css  js  c++  java
  • html的table转化为二维数组 (考虑rowspan和colspan)

    /**
    * Table -> Two-dimension array 
    * @param {*} value
    */
    const get2DArrayByTable = ($, $trs) => {
    let trlength = $trs.length;
    let arr = [];
    for (let i = 0; i < trlength; i++) {
    arr[i] = [];
    }
    $trs.each(function(trindex, tritem) {
    $(tritem).children('th').each(function(thindex, thitem) {
    let rowspanCount = $(thitem).attr('rowspan');
    let colspanCount = $(thitem).attr('colspan');
    let value = $(thitem).text();
    let colIndex = thindex;
    while (arr[trindex][colIndex] !== undefined) {
    colIndex++;
    }
    if (rowspanCount > 1 && colspanCount > 1) {
    for (let i = 0; i < rowspanCount; i++) {
    for (let j = 0; j < colspanCount; j++) {
    arr[trindex + i][colIndex + j] = value;
    }
    }
    } else if (rowspanCount > 1) {
    for (let i = 0; i < rowspanCount; i++) {
    //个别对应  rowspan定义错误的话,超过最大行数直接忽略。
    if (trindex + i > arr.length - 1) {
    break;
    }
    arr[trindex + i][colIndex] = value;
    }
    } else if (colspanCount > 1) {
    for (let i = 0; i < colspanCount; i++) {
    arr[trindex][colIndex + i] = value;
    }
    } else {
    arr[trindex][colIndex] = value;
    }
    });
    $(tritem).children('td').each(function(tdindex, tditem) {



    let rowspanCount = $(tditem).attr('rowspan');
    let colspanCount = $(tditem).attr('colspan');
    let value = $(tditem).text();
    let colIndex = tdindex;
    while (arr[trindex][colIndex] !== undefined) {
    colIndex++;
    }
    if (rowspanCount > 1 && colspanCount > 1) {
    for (let i = 0; i < rowspanCount; i++) {
    for (let j = 0; j < colspanCount; j++) {
    arr[trindex + i][colIndex + j] = value;
    }
    }
    } else if (rowspanCount > 1) {
    for (let i = 0; i < rowspanCount; i++) {
    //个别对应  rowspan定义错误的话,超过最大行数直接忽略。
    if (trindex + i > arr.length - 1) {
    break;
    }
    arr[trindex + i][colIndex] = value;
    }
    } else if (colspanCount > 1) {
    for (let i = 0; i < colspanCount; i++) {
    arr[trindex][colIndex + i] = value;
    }
    } else {
    arr[trindex][colIndex] = value;
    }
    });



    });
    return arr;
    };
  • 相关阅读:
    解决Linux ssh登录马上退出问题
    FineReport实线java报表填报录入的效果图
    CCEditBox/CCEditBoxImplMac
    Android图片异步载入框架Android-Universal-Image-Loader
    HYAppFrame(WinForm框架源代码)安装部署指南
    ASP.NET Web Api 2 接口API文档美化之Swagger
    Android OTA在线升级一(架构分析)【转】
    Android进程间通信(IPC)机制Binder简要介绍和学习计划【转】
    Linux内核源码中的likely和unlikely释疑【转】
    Android蓝牙串口通讯【转】
  • 原文地址:https://www.cnblogs.com/sdfczyx/p/7099103.html
Copyright © 2011-2022 走看看