在js中创建元素

Create elements in js

我想在 html 中使用 createElement 使用 js 创建元素,但我的代码有些问题。

HTML
 <button class="prueba_boton">soy una prueba</button>
    <div class="prueba"></div>
JS
    let buttonPrueba = document.getElementsByClassName("prueba_boton");
    buttonPrueba[0].addEventListener("click", funcionPrueba);
    console.log("hola", funcionPrueba);
    function funcionPrueba() {
      var printTextIdDrink = document.createElement("h2");
      printTextIdDrink.setAttribute("class", "TextIdDrink");
      printTextIdDrink.innerHTML = "<span>Bebida:olaaa </span>";
      console.log("me estoy ejecutando");
      document.getElementsByClassName("prueba").append(printTextIdDrink);
    }

这里我有控制台错误 me estoy ejecutando main.js:28:11(console.log(我正在执行)

未捕获类型错误:document.getElementsByClassName(...).append 不是一个函数 功能普鲁埃巴 http://127.0.0.1:5500/main.js:29 EventListener.handleEvent* http://127.0.0.1:5500/main.js:22

当您使用 getElementsByClassName 时,它​​ returns 一个集合,因此,您可以 select 追加之前的元素:

document.getElementsByClassName("prueba")[0].append(printTextIdDrink);

或者使用一个 id prop returns 只有一个元素:

<div id="prueba"></div>
...
document.getElementById("prueba").append(printTextIdDrink);

这可能会有所帮助。

let buttonPrueba = document.querySelector(".prueba_boton");
buttonPrueba.addEventListener("click", funcionPrueba);
//console.log("hola", funcionPrueba);
function funcionPrueba() {
  var printTextIdDrink = document.createElement("h2");
  printTextIdDrink.setAttribute("class", "TextIdDrink");
  printTextIdDrink.innerHTML = "<span>Bebida:olaaa </span>";
  console.log("me estoy ejecutando");
  document.querySelector(".prueba").append(printTextIdDrink);
}
<button class="prueba_boton">soy una prueba</button>
<div class="prueba"></div>