Javascript 内部HTML类?

Javascript 内部HTML类?,javascript,html,Javascript,Html,我有一个带有HTML的div,我正试图将其放入一个空div中。新div应该从原始div中获取所有内容和样式 现有内容: <ul id="existing_id" class="my_class"> <strong>Does not show up in new div</strong> <li class="style"> <p class="style">Shows up in new div</p>

我有一个带有HTML的div,我正试图将其放入一个空div中。新div应该从原始div中获取所有内容和样式

现有内容:

<ul id="existing_id" class="my_class">
  <strong>Does not show up in new div</strong>
  <li class="style">
    <p class="style">Shows up in new div</p>
  </li>
</ul>
新的空div-我将所有内容从现有的_id推送到:

<div id="empty_div"></div>
我通过JS瞄准元素:

var existing = document.getElementById("exisiting_id")
var existing_li = existing.getElementsByTagName("li")
var empty_div = document.getElementById("empty_div")
var myArray = []

empty_div.innerHTML = ""

// Pushing each existing li element inside myArray
for (var i=0; i < existing_li.length; i++) { myArray.push(existing_li[n]; }

function make_it_happen() {
  empty_div.innerHTML += myArray.innerHTML
}

我从新div中现有的_id中获取内容,但不是与每个元素关联的样式。有些元素也会被忽略,例如不显示在新div中

如果要将所有LI元素中的所有HTML收集到空的div中,则不需要myArray。应采取以下措施:

var existing = document.getElementById("existing_id")
var existing_li = existing.getElementsByTagName("li")
var empty_div = document.getElementById("empty_div")

function make_it_happen() {
  var html = '';
  for (var i = 0; i < existing_li.length; i++) {
      html += existing_li[i].innerHTML;
  }
  empty_div.innerHTML = html;
}

您正在构建一个DOM元素数组。该数组上没有.innerHTML属性。您应该构建每个单独的.innerHTML的数组,只需附加所有这些字符串的串联即可。您的整个代码示例中充满了较小的错误,这将阻止它以这种形式运行。因此,至少提供一个你实际正在做的工作示例至于不“出现”的强元素——好吧,当你首先只选择li元素循环时,这有点自然,你不这么认为吗?顺便说一句,在ul中,在这一点上使用强HTML是无效的。为什么不首先使用空的_div.innerHTML=existing.innerHTML是一个谜,您也应该向我们解释一下……您可能出于某种原因选择在元素上循环的方法——但这是什么,你没有提到。@Pointy这就是我犯的错误。非常感谢。我不仅构建了一个DOM元素数组,而且没有正确连接输出。@CBroe感谢您指出标记错误。那是我打字时的一个错误。上面的场景是故意缩短和模糊的,希望避免冗长而混乱的提问。也许恰恰相反。代码越长,获取每个列表元素并将它们分别传递到一个数组中。从这个数组中还有另一个函数,它可以将X个元素打印到页面上,模拟分页。感谢您的快速响应,我对此表示感谢。我尝试在测试场景中运行此脚本,但无法将现有内容放入空div。很抱歉,我的原始版本中有几个拼写错误,例如,Exising而不是existing。我在上面更正了它,并制作了这把小提琴: