满口金牙 2022-06-19 18:47 采纳率: 91.5%
浏览 65
已结题

tabel row中 遍历不出要的 Td, index 对不上,请教!

img

分解单元格合并的行
 for (let i = td_row.rowIndex + 1; i < td_row.rowIndex + init_rowspan; i++) { //  向下一行开始插入td
      // 计算插入位置,
      let in_index
      for (let a = 0; a < tb.rows[i].cells.length; a++) {
        const td_rc = JSON.parse(tb.rows[i].cells[a].getAttribute('td_rc') as string)
        if(td_rc && td_rc.maxc == init_col - 1){ // init_col 单元格的 实际列号,非index
          in_index = tb.rows[i].cells[a].cellIndex +1
          if (i == 4) { console.log('第4行 所有 td',tb.rows[i].cells)}
           // 看控制台打印, 问题在这 行,得到index 为2  的 td, 而不是index 1  的  td
          if (i == 4) { console.log('第4行 cells[1]元素',tb.rows[i].cells[1])}  // 这是啥原因造成的?
          if (i == 4) { console.log('第4行 cells[1]元素的 index',tb.rows[i].cells[1].cellIndex)}  
          break
        }else if(td_rc && td_rc.c == init_maxc + 1){
          in_index = tb.rows[i].cells[a].cellIndex
          break
        }
      }
      nextTick(() => {
        // console.log('3运行到这了',i, in_index)
        new_td = tb.rows[i].insertCell(in_index)
        new_td.setAttribute('td_rc', `{"r":${i},"c":${in_index},"maxc":${in_index},"maxr":${i}}`)
        new_td.innerText = '新行'
      })
    }
  }

另外控制台,两个 length 也不一样,一个4 一个5

  • 写回答

4条回答 默认 最新

  • 关注

    这个是因为你用console.log()输出整个对象
    console.log()输出对象或数组时是在控制台显示一个对象或数组的引用。
    在用console.log()输出数组或对象时,对象(数组)的属性是折叠不显示的。
    如果你在console.log()输出之后改变了对象(数组)的属性,当你点击三角展开属性时,会重新读取对象(数组)当前的属性,也就是显示出来的是你点击三角展开时的属性,而不是执行console.log()时的属性。

    你用console.log(JSON.stringify(arr));以字符串方式输出就可以看到对象当前的值

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 6月28日
  • 已采纳回答 6月20日
  • 修改了问题 6月19日
  • 创建了问题 6月19日

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器