javascript - 使用 Javascript 检查 HTML 片段在视觉上是否为空

标签 javascript html

我需要在 Node.js 服务器中处理一些作为电子邮件内容嵌入的 HTML 片段。目标是检查代码片段在视觉上是否显示为空,如果是,则显示一些占位符文本。

例如,此代码段在视觉上被认为是空的:

<div><br></div><div><includetail><!--<![endif]--></includetail></div>

因为在浏览器中呈现时它会显示为空,而此代码片段在视觉上被认为是非空的:

<div><br></div><div>Hello!</div>

因为在浏览器中呈现代码段时会出现 Hello!

如何实现这样一个函数来返回 HTML 片段的视觉空白?

最佳答案

我不会在电子邮件中运行 JavaScript,它的支持确实很差。

http://en.wikipedia.org/wiki/Comparison_of_e-mail_clients

一般来说,jQuery 解决方案如下所示

$("*").empty().text("placeholder here");

JavaScript 解决方案是

var list = document.getElementsByTagName('*');
for (var i = 0; i < list.length; i++) {
  if (list[i].innerHtml === "") {
    list[i].innerHtml = "placeholder here"
  }
}

编辑: 既然您在评论中声明您将在节点中运行它,请查看Cheerio 以获取 jQuery 节点替换。 https://github.com/cheeriojs/cheerio

我的代码通过cheerio后将正常工作

关于javascript - 使用 Javascript 检查 HTML 片段在视觉上是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45331329/

相关文章:

javascript - 这段 jQuery 代码中的 function(i) 是什么意思?

javascript - 将 json obj 发送到 polymer 元素

javascript - 包含图形插件多个对象的二维数组声明?

javascript - getBoundingClientRect() 在窗口恢复时未返回正确的值

javascript - 除了选择元素之外,如何使用 Angular ng-options?

javascript - 长度不定的跨度元素

javascript - 如果他嵌套在另一个对象实例中,如何访问对象方法?

javascript - 网站在一个域上的 IE9 上表现不同,但完全相同的站点在不同域上表现良好

javascript - 按值对 JSON 进行分组

javascript - 如何使移动网站像 Linkedin 移动收件箱一样工作?