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

JavaScript使用内置的DOM方法或原型从HTML字符串创建新的DOM元素 提出问题

宋耀
2023-03-14
问题内容

我有一个表示元素的HTML字符串:'<li>text</li>'。我想将其附加到DOM中的元素上(ul以我为例)。如何使用Prototype或DOM方法做到这一点?

(我知道我可以在jQuery中轻松完成此操作,但不幸的是,我们没有使用jQuery。)


问题答案:

注意:当前大多数浏览器都支持HTML <template>元素,这些元素提供了一种更可靠的方式来从字符串创建元素。

对于较旧的浏览器和node / jsdom:(<template>在撰写本文时尚不支持元素),请使用以下方法。库用于从HTML字符串中获取DOM元素的操作是相同的(为IE实现,还需要一些额外的工作来解决IE的错误innerHTML):

function createElementFromHTML(htmlString) {
  var div = document.createElement('div');
  div.innerHTML = htmlString.trim();

  // Change this to div.childNodes to support multiple top-level nodes
  return div.firstChild; 
}

请注意,与HTML模板不同,这不适用于某些不能合法地为a的子元素的元素<div>,例如<td>

如果你已经在使用库,建议你坚持使用库批准的从HTML字符串创建元素的方法:

  • 原型在其update()方法中内置了此功能。
  • jQuery在jQuery(html)jQuery.parseHTML方法中实现了它。


 类似资料:
  • 问题内容: 有没有办法像这样转换HTML: 或任何其他HTML字符串插入DOM元素?(以便我可以使用appendChild())。我知道我可以执行.innerHTML和.innerText,但这不是我想要的-我确实希望能够将动态HTML字符串转换为DOM元素,以便可以在.appendChild()中传递它。 更新:似乎有些混乱。我将HTML内容放在字符串中,作为JavaScript中变量的值。该文

  • 本文向大家介绍JS动态创建DOM元素的方法,包括了JS动态创建DOM元素的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS动态创建DOM元素的方法。分享给大家供大家参考。具体如下: 近日,因工作需要,需要通过点击某个元素后, 动态创建一个DOM元素并显示,因此写了一些相关的JS函数,在此记录,以作备忘: 使用示例: 希望本文所述对大家的javascript程序设计有所帮助。

  • 问题内容: 有没有办法像这样转换HTML: 或任何其他HTML字符串插入DOM元素?(以便我可以使用appendChild())。我知道我可以执行.innerHTML和.innerText,但这不是我想要的- 我确实希望能够将动态HTML字符串转换为DOM元素,以便可以在.appendChild()中传递它。 更新:似乎有些混乱。我将HTML内容放在字符串中,作为JavaScript中变量的值。该

  • 脚本 步骤定义 错误 无此元素(会话信息:chrome=31.0.1650.63)(驱动程序信息:chromeDrive=2.8.240825,平台=Linux3.8.0-34-通用x86_64) 描述 单击“创建”按钮时,会在DOM中插入一个div元素(通过JavaScript),显示“First name”和“Last name”字段。在窗口可见的情况下运行时,我可以看到div元素在消失并导致

  • 问题内容: 我经常在网上找到漂亮的样式。要复制DOM元素的CSS,我使用Google Chrome开发者工具检查该元素,查看各种CSS属性,然后将其手动复制到我自己的样式表中。 是否可以轻松导出给定DOM元素的所有CSS属性? 问题答案: 这是一种方法的代码,该方法应返回一个CSS字符串,包括给定元素的所有内联和外部样式,默认值 除外 (这是主要困难)。 例如: 由于您使用的是Chrome,因此我

  • 问题内容: 我正在尝试测试DOM元素是否存在,如果确实存在,则将其删除,如果不存在,则将其创建。 检查是否存在,创建元素有效,但删除该元素无效。基本上,所有这些代码所做的就是通过单击按钮将iframe注入网页。我想发生的是,如果iframe已经存在,可以删除它。但是由于某种原因,我失败了。 问题答案: 应该在父级上调用,即: 在您的示例中,您应该执行以下操作: