javascript - 无法动态创建和附加 div 和 span

标签 javascript html

我正在编写一个 HTML 代码,其中有一个 div 说 y,它在我的 HTML 正文中,并且有一个按钮。当用户单击此按钮时,我想执行以下操作。

  1. 创建另一个 div(类为 smallBar)
  2. 在这个 div 中,我想创建 3 个 span。
  3. 将此(总 smallBar)个内容添加到 div y

这是我当前的代码。

HTML

<div class="y" id="y">

</div>
<input type="button" onclick="createDiv()" value="click me" />

JS

function createDiv() {
  var div = document.createElement("div");
  div.className = "smallBar";
  var span1 = document.createElement("span");
  span1.className = "span1";
  var span2 = document.createElement("span");
  span2.setAttribute("class", "span1");
  var span3 = document.createElement("span");
  span3.setAttribute("class", "span1");

  div.appendChild(span1);
  div.appendChild(span2);
  div.appendChild(span3);

  document.getElementById("y").innerHTML = div;
}

在这里,当我单击按钮时,它没有创建 div,而是给我作为 [object HTMLDivElement] 的消息。请让我知道我哪里出错了,我该如何解决。

这是我的 fiddle https://jsfiddle.net/d9hg0vkk/

谢谢

最佳答案

您正在使用 innerHTML 而不是您需要使用 appendChild()

function createDiv() {
  var div = document.createElement("div");
  div.className = "smallBar";
  var span1 = document.createElement("span");
  span1.className = "span1";
  span1.innerHTML="Spam1";
  var span2 = document.createElement("span");
  span2.setAttribute("class", "span2");
  span2.innerHTML="Span2";
  var span3 = document.createElement("span");
  span3.setAttribute("class", "span3");
  span3.innerHTML="Span3";

  div.appendChild(span1);
  div.appendChild(span2);
  div.appendChild(span3);

  document.getElementById("y").appendChild(div);
}
<div class="y" id="y">

</div>
<input type="button" onclick="createDiv()" value="click me" />

P.S- InnerHTML 提供/设置一个字符串,表示元素的 HTML 内容。当你执行 document.getElementById("y").innerHTML = div 时,它将它作为一个字符串而不是一个对象,因此你会看到 [object HTMLDivElement]股利。相反,您可以像这样使用 innerHTML document.getElementById("y").innerHTML = div.outerHTML;

Read More about innerHTML

关于javascript - 无法动态创建和附加 div 和 span,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47977812/

相关文章:

javascript - jQuery .hide(),然后是基于文本输入的 .show()

javascript - Odoo 10 添加按钮到 POS

javascript - Modernizr 导致内容安全策略 (CSP) 违规错误

javascript - jQuery 排队 css 方法

javascript - 你能在 YUI 数据表的每个单元格中呈现任意 HTML 吗?

javascript - jQuery 循环插件,自定义分页器选项卡

javascript - 从 map 中选择表行。 Angular/Google map 集成

html - 输入字段有默认边距

javascript - 通过 javascript 和 ajax 填充 HTML 页面的最佳策略

html - 我如何在 flex - css 中实现下面的布局