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;
    };
  • 相关阅读:
    caioj 1914 & CH 0x20搜索(0x27A*)例题1:第K短路 Remmarguts'Date
    多项式的化简求法
    caioj 1715 表达式的转换
    HDU 2829 Lawrence
    山海经 (线段树)
    神奇的KMP
    浅谈zkw线段树(by Shine_hale)
    线段树补充
    浅谈线段树(by Shine_hale)
    k短路
  • 原文地址:https://www.cnblogs.com/sdfczyx/p/7099103.html
Copyright © 2011-2022 走看看