首页 > 解决方案 > 调用 document.createElement 时是否会调用 HTMLTableElement 的构造函数?

问题描述

出于好奇,我决定尝试扩展 HTMLTableElement 以创建自定义动态表,并想知道为什么我在调用 createElement 时没有调用构造函数中的控制台日志。

我错过了什么...

class sudokuTable extends HTMLTableElement {
   constructor() {
      // Always call super first in constructor
      super();

      // create the caption for the sudoku puzzle
      console.log('this')
   }
}

标签: javascripthtml

解决方案


您不能document.createElement('custom-element')直接在自定义的内置元素上使用。

相反,您必须使用document.createElement('extended_element', { is: "custom-element" })

class sudokuTable extends HTMLTableElement {
  constructor() {
    // Always call super first in constructor
    super();

    // create the caption for the sudoku puzzle
    console.log('this')
  }
}

customElements.define('sudoku-table', sudokuTable, { extends: 'table' });
const your_elem = document.createElement("table", { is: "sudoku-table" });


推荐阅读