代码之家  ›  专栏  ›  技术社区  ›  Nilay Singh

类型“htmlElement”上不存在typescript错误属性。任何

  •  0
  • Nilay Singh  · 技术社区  · 6 年前

    我试图在typescript中使用javascript创建一个表,但出现错误:

    [ts] Property 'insertRow' does not exist on type 'HTMLInputElement'.
    any
    

    生成表的代码如下:

      createTable(chart){
      var table = document.createElement("TABLE");    
      var row,header,cell1, cell2;
      var data = chart.options.data;
    
      table.style.border = "1px solid #000"; 
      header = table.createTHead();
      row = header.insertRow(0);    
      cell1 = row.insertCell(0);
      cell2 = row.insertCell(1);
      cell1.style.border = "1px solid #000"; 
      cell2.style.border = "1px solid #000"; 
      cell1.innerHTML = "<b>X-Value</b>"; 
      cell2.innerHTML = "<b>Y-Value</b>"; 
    
      for(var i = 0; i < data.length; i++){
        for(var j = 0; j< data[i].dataPoints.length; j++){
          row = table.insertRow(1);
    
          cell1 = row.insertCell(0);
          cell2 = row.insertCell(1);
          cell1.style.border = "1px solid #000"; 
          cell2.style.border = "1px solid #000"; 
    
          cell1.innerHTML = data[i].dataPoints[j].x;
          cell2.innerHTML = data[i].dataPoints[j].y; 
        }
      }    
      document.getElementById("chartContainer").appendChild(table);
    }
    

    我得到两个属性createThead()和insertRow()的错误我在stackOverflow中遵循了一些答案我使用了这个:

    (document.createElement("TABLE")) as HTMLInputElement;
    
    (table.createTHead()) as HTMLBodyElement;
    (table.createTHead()) as HTMLInputElement;
    

    我尝试了以下这些我不知道为什么我会犯这个错误:

    1 回复  |  直到 6 年前
        1
  •  0
  •   Nilay Singh    6 年前

    我的解决方案非常简单,我需要分配表是什么类型的元素。所以我的问题是:

      createTable(chart){
      var table = document.createElement("TABLE")  as HTMLTableElement;    
      var row,header,cell1, cell2;
      var data = chart.options.data;
      table.style.border = "1px solid #000"; 
      header = table.createTHead();
      row = header.insertRow(0);    
      cell1 = row.insertCell(0);
      cell2 = row.insertCell(1);
      cell1.style.border = "1px solid #000"; 
      cell2.style.border = "1px solid #000"; 
      cell1.innerHTML = "<b>X-Value</b>"; 
      cell2.innerHTML = "<b>Y-Value</b>"; 
    
      for(var i = 0; i < data.length; i++){
        for(var j = 0; j< data[i].dataPoints.length; j++){
          row = table.insertRow(1);
          cell1 = row.insertCell(0);
          cell2 = row.insertCell(1);
          cell1.style.border = "1px solid #000"; 
          cell2.style.border = "1px solid #000"; 
    
          cell1.innerHTML = data[i].dataPoints[j].x;
          cell2.innerHTML = data[i].dataPoints[j].y; 
        }
      }    
      document.getElementById("chartContainer").appendChild(table);
     }
    

    所以我添加了htmltableelement,这是解决我问题的方法。