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;
    };
  • 相关阅读:
    【POJ1958】汉诺塔+
    hdu 5067(暴力搜索)
    hdu 5063(思路题-反向操作数组)
    hdu 5062(水题)
    hdu 2227(树状数组+dp)
    hdu 5480(维护前缀和+思路题)
    hdu 2492(树状数组)
    hdu 1394(树状数组)
    poj 2299(离散化+树状数组)
    poj 3321(树状数组)
  • 原文地址:https://www.cnblogs.com/sdfczyx/p/7099103.html
Copyright © 2011-2022 走看看