【问题标题】:how to append an inline element using vanilla js [duplicate]如何使用vanilla js附加内联元素[重复]
【发布时间】:2019-03-07 22:56:57
【问题描述】:

我想在输入字段之后附加一个 span 元素,但使用 appendChild() 将 span 附加到输入字段并没有按我的意愿工作。如何在js中的另一个元素之后附加一个内联元素?

这是我创建 span 元素的代码

    var span = document.createElement("span");
    span.setAttribute("id", inputNameValues[i] + "-error");
    var errorText = document.createTextNode("* " + inputLabels[i] + " must not be left blank");
    span.appendChild(errorText);
    input.appendChild(span);

【问题讨论】:

标签: javascript html dom inline


【解决方案1】:

看起来您将 span 添加为 input 的子项,而不是兄弟项。

我认为使用 Element.insertAdjacentHTML() 可能会更好。

https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTML

【讨论】:

  • 我收到此错误:未捕获的 DOMException:无法在“元素”上执行“插入 AdjacentHTML”:元素没有父元素。我的输入标签在一个字段集中的表单中,它怎么可能没有父节点?
  • 我已经把它复制到codepen中看看
  • 您确定在某处将输入定义为变量吗?我认为这是 codepen 中的错误。
  • 我已经意识到了这个问题,我正在动态创建所有的 HTML,并在我实际将其父节点附加到 DOM 之前尝试引用 parentNode。糟糕...感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 2019-04-27
  • 2022-10-25
  • 1970-01-01
  • 1970-01-01
  • 2021-12-26
  • 1970-01-01
  • 2010-12-15
  • 1970-01-01
相关资源
最近更新 更多