可以使用innerHTML或outsideHTML将内容插入页面中。

var container = document.getElementById("container");
container.innerHTML = "<p>Here's some new <strong>DOM</strong> content.</p>";

(请注意,jQuery还使用innerHTML进行DOM内容操作)。

它既快速又容易-但并非没有问题:

  1. 可以插入无效HTML字符串,这使得错误很难发现和调试。
  2. 如果您尝试复杂的活动,例如在结果DOM内容中使用或修改节点,则可能会遇到浏览器问题。
  3. 尽管得到了很好的支持,但innerHTML是专有技术,不是W3C DOM的一部分。 它冒犯了标准的众神。

因此,让我们看一下基于DOM的替代方案:

var newpara = document.createElement("p");
var newstrong = document.createElement("strong");
newstrong.appendChild(document.createTextNode("DOM"));
newpara.appendChild(document.createTextNode("Here's some new "));
newpara.appendChild(newstrong);
newpara.appendChild(document.createTextNode(" content."));var container = document.getElementById("container");
container.appendChild(newpara);

讨厌。 它的时间长了三倍,执行起来较慢,而且仍然容易发生人为错误。

几年前,我设计了自己的解决方案BetterInnerHTML ,它将HTML字符串作为XML加载,递归了结构并将适当的节点插入DOM。 它起作用了,但是我对性能或诸如HTML实体之类的问题从未完全满意。

幸运的是,乔·斯特尔马赫(Joe Stelmach)设计了一个替代方案。 这是一个名为Laconic的小型独立实用程序,它使用逻辑JavaScript表示法直接映射到HTML,例如

$.el.p("Here's some new ",$.el.strong("DOM")," content."
).appendTo(document.getElementById("container"));

使用对象文字表示法支持属性:

// produce <div class="example"><div>Content</div></div>
$.el.div({ "class": "example"},$.el.div("Content")
);

我喜欢。 虽然innerHTML仍然是快速而肮脏的DOM内容生成的最佳选择,但Laconic在无法正常工作的那些奇怪情况下将非常有用。

有关更多信息和下载,请参考:

  • GitHub上的Laconic
  • 简单的示例页面

翻译自: https://www.sitepoint.com/laconic-javascript-dom-content-generation/

Laconic:从JavaScript生成DOM内容的新方法相关推荐

  1. vue+vite项目当中:介绍一种生成助记词新方法,兼容以太坊

    在上一篇文章 当中我介绍了使用bip39生成助记词,在vue3不同的框架vite.vue-cli当中引入配置的方法.虽然可以生成助记词但是,需要进行大量的配置,尤其是在vite+ES6+vue3项目当 ...

  2. 你可能不知道的JavaScript 遍历DOM的几种方法

    最近看到一篇关于前端优化方面的文章,里面提到了几点对DOM遍历操作的优化,文章只是一笔带过,并没有深入的讲解. 其中提到了几个优化的手段,乍一看似乎没见过,然后再仔细想想,其实无论是犀牛书还是红宝书都 ...

  3. JavaScript之DOM常用属性及方法详解

    一.什么是DOM? DOM:文档对象模型(Document Object Model,简称 DOM),是 W3C 组织推荐的处理可扩展标记语言(HTML或者XML)的标准编程接口. W3C 已经定义了 ...

  4. JavaScript生成uuid的四种方法

    在开发过程中,有时候需要js生成全局唯一标识符,在java中可以使用uuid,但是JS中没有现成的函数.总结了一下,JS生成唯一标识符的几种方法. 第一种 function guid() {retur ...

  5. Dom基础 特殊的节点 获取元素节点的内容 获取元素的属性 css属性 Dom获取元素的方法

    1.Dom基础 <!DOCTYPE html> <html><head><meta charset="utf-8"><titl ...

  6. html5新增标记元素的内容类型,HTML5新标签与javaScript新方法

    HTML5 (0106) 1.文档声明 2.字符编码设置 3.验证(http://validator.w3.org/) HTML5新增的语义化标签 1.语义化标签:说明页面内容,便于搜索引擎寻找该内容 ...

  7. Javascript操作DOM常用API总结

    文本整理了javascript操作DOM的一些常用的api,根据其作用整理成为创建,修改,查询等多种类型的api,主要用于复习基础知识,加深对原生js的认识. 基本概念 在讲解操作DOM的api之前, ...

  8. 【repost】Javascript操作DOM常用API总结

    Javascript操作DOM常用API总结 文本整理了javascript操作DOM的一些常用的api,根据其作用整理成为创建,修改,查询等多种类型的api,主要用于复习基础知识,加深对原生js的认 ...

  9. dhtml_DHTML乌托邦:使用JavaScript和DOM的现代Web设计

    dhtml 动态HTML(简称DHTML)是一组Web开发技术的名称,这些技术主要用于具有非平凡用户输入功能的Web页面. DHTML意味着处理HTML文档的文档对象模型,在样式信息中摆弄CSS指令, ...

最新文章

  1. debian安装emacs23
  2. spring cloud config配置中心源码分析之注解@EnableConfigServer
  3. 判断文件是否被占用的两种方法
  4. php 提取登录QQsid_php模拟登录qq邮箱(curl命令详解)
  5. 选择指定的MySQL数据库
  6. linux 配置EPEL源
  7. 数字货币交易所_数字货币交易所开发运营的盈利模式
  8. Nest入门教程 - 初识Providers
  9. SpringCloud工作笔记030---使用java提供的keytool来生成证书
  10. 二叉树的镜像(C++)
  11. sqlite简单笔记
  12. keras中文文档网址
  13. java 连接163邮箱_java调用163邮箱发送邮件
  14. html怎么去广告,净网大师怎么不能去广告了? - 实用方法教程 - 画夹插件网
  15. 应广单片机芯片PMS132B -SOP8/SOP14/SOP16
  16. C语言 strcat 函数 - C语言零基础入门教程
  17. R语言学习笔记8_回归分析和相关分析
  18. 【二】头歌平台实验-离散数学逻辑与推理
  19. 汇信软件入选山东省优秀软件企业、标志性软件产品项目
  20. Lwm2m的client分析

热门文章

  1. 2021年中国三价镉市场趋势报告、技术动态创新及2027年市场预测
  2. QT/python 繁体中文识别和文件转化
  3. 【行研报告】2021办公物业管理发展报告—附下载
  4. 2021-11-05mysql版本更替
  5. 巴菲特致股东的一封信:1984年
  6. ONOS编程系列(一)之简单应用开发
  7. 【开源电机驱动】电流数据处理与分析
  8. 办公室计算机技巧知识,办公室文秘实用计算机操作技巧
  9. 办公室文员必备python神器,将PDF文件表格转换成excel表格!
  10. 一个支持多屏显示的程序