代码之家  ›  专栏  ›  技术社区  ›  rory.ap

在JavaScript中构建一个由HTML表行中的单元格的名称/值对组成的对象

  •  1
  • rory.ap  · 技术社区  · 6 年前

    我对JS是全新的,所以请容忍我;我甚至不确定我是否在以正确的方式寻找答案,但经过数小时的谷歌搜索和修补,我一直无法让它正常工作。

    我有一个HTML表格,用户点击一行。我可以获得如下所示的单击元素:

    var elem = document.elementFromPoint(e.clientX, e.clientY);
    

    var tr = elem.closest("tr");
    

    var set = []; 
    
    $.each(tr.cells, function(cell) { 
        set.push({name : cell.dataset.field, value : cell.innerText}); 
    });
    

    但我得到了一个错误:

    未捕获类型错误: 无法读取未定义的属性“字段”
    在HTMLTableCellElement。(:1:80)
    在Function.each(jquery.min.js:2)
    时间:1:17

    enter image description here

    这里有一块手表 tr 其中突出显示的部分显示 field 我在找。

    enter image description here

    我很确定我可以在获得名称/值对数组后将其转换为对象,例如使用 JSON.parse()


    那么,我的代码或方法有什么问题?有没有更简洁或更有效的方法来做我想做的事情?

    1 回复  |  直到 6 年前
        1
  •  2
  •   benvc    6 年前

    您只是缺少排序所需的参数 $.each()

    $.each(tr.cells, function(index, elem) {
      set.push({
        name: elem.dataset.field,
        value: elem.innerText
      });
    });