如何在不定义变量的情况下使用document.createElement()

Col*_*art -1 javascript createelement

我很确定我已经知道了答案,但我想要一个解释.

我想创建和追加一个元素,而不必在变量中定义它(这对我来说似乎是一种浪费,而且是不必要的).

var errorMessage = document.getElementById("errorMessage");

 errorMessage.innerHTML = "";

errorMessage.appendChild(document.createElement('p').appendChild(document.createTextNode("Due to an egg allergy, your child will NOT receive the flu vaccine.")));
Run Code Online (Sandbox Code Playgroud)

所以这实际上将文本节点附加到errorMessage元素中,但不会生成'p'标记.

我只是认为你必须定义一个变量来创建一个新元素,这种方式更优雅,这是荒谬的.我无法在网上找到任何关于此的内容.有没有人知道这种方式的工作方式我想或可能知道为什么它不会这样工作?

Ori*_*iol 5

appendChild返回附加的子项.所以我想你想要

var text = "Due to an egg allergy, your child will NOT receive the flu vaccine.";
document.getElementById("errorMessage")
  .appendChild(document.createElement('p'))
  .appendChild(document.createTextNode(text));
Run Code Online (Sandbox Code Playgroud)

  • @squint我认为问题是不将`document.createElement('p')`存储在变量中,但可以存储`errorMessage`. (2认同)