满口金牙 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 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 Macbookpro 连接热点正常上网,连接不了Wi-Fi。
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程