当前位置: 首页 > 面试题库 >

Javascript-将HTML附加到不带innerHTML的容器元素

祁晟
2023-03-14
问题内容

我需要一种无需使用innerHTML即可将HTML附加到容器元素的方法。我不想使用innerHTML的原因是因为当使用这样的内容时:

element.innerHTML += htmldata

它的工作原理是先添加所有html,然后再添加旧html和新html。这不好,因为它会重置动态媒体,例如嵌入式Flash视频…

我可以通过这种方式工作:

var e = document.createElement('span');
e.innerHTML = htmldata;
element.appendChild(e);

但是,这种方式的问题是我现在不想在文档中有多余的span标签。

那怎么办呢?谢谢!


问题答案:

给出一个替代方案(因为使用DocumentFragment似乎无效):您可以通过遍历新生成的节点的子级并仅追加这些子级来模拟它。

var e = document.createElement('div');
e.innerHTML = htmldata;

while(e.firstChild) {
    element.appendChild(e.firstChild);
}


 类似资料:
  • 问题内容: 我正在尝试将html数据动态地插入到动态创建的列表中,但是当我尝试为动态创建的按钮附加onclick事件时,则不会触发该事件。解决方案将不胜感激。 JavaScript代码: }); HTML代码: 问题答案: 这是由于您的元素是动态创建的。您应该使用事件委托来处理事件。 jQuery使它更容易:

  • 问题内容: 我有零片: 我在其中添加一个元素: 为什么在一个nil slice上附加一个元素会使容量增加2? 使用来打印切片显示以下内容: 我也很困惑为什么重新切片会显示一个零,该零既不在原始切片中也不附加在原始切片上: 问题答案: Go可以免费为您提供超出您要求的容量。通过减少所需的分配(可以复制)数量来提高性能。容量只是在需要另一分配之前保留的空间量。 如果至少在我的实验中将5个元素添加到此片

  • 问题内容: 如何附加这个HTML字符串 到具有DOM中ID的DIV ? (顺便说一句是不可接受的。) 问题答案: 使用(如果可用),否则使用某种后备。当前所有浏览器均支持 insertAdjacentHTML 。

  • 问题内容: 我需要在Windows Docker容器内附加到PATH,并且尝试了许多排列。 这些都不起作用:它们不评估预先存在的PATH变量。 追加到PATH的正确语法是什么?我什至可以在Docker内部添加到PATH吗?(我可以在类似的Linux容器上使用) 问题答案: 不幸的是,这是行不通的,因为Windows环境变量的工作方式与linux有所不同。更多信息 到目前为止,唯一的方法是通过 但是

  • 我对自动化测试完全陌生。在参考了一些教程之后,我创建了一个自动测试用例。我尝试自动化的测试用例是在单击表的一个标题后检查排序是否正常工作。 我的自动测试用例失败,出现以下异常: 以下是代码: 例外情况来自此行: 有人能告诉我isse的原因以及如何解决吗? 非常感谢您的帮助

  • 问题内容: 在以下示例代码中,我将事件处理程序附加到包含文本“ foo”的范围。该处理程序是一个匿名函数,会弹出一个。 但是,如果我将其分配给父节点的,则此事件处理程序将被销毁-单击“ foo”将无法弹出警报框。 这个可以解决吗? 问题答案: 不幸的是,即使您尝试附加,分配给也会导致所有子元素的破坏。如果要保留子节点(及其事件处理程序),则需要使用DOM函数: