【问题标题】:Get what html element shows user获取 html 元素向用户显示的内容
【发布时间】:2016-10-18 06:14:08
【问题描述】:

您可以使用innerHTML 获取代码存储在html 元素中的内容。有什么方法可以显示如果用户在渲染版本中复制并粘贴内容会得到什么。

例如,如果你有 div

<div>&nbsp;&nbsp;&nbsp;Hello World <img alt="imageText" src="image/source"></img></div>

我想得到字符串" Hello World imageText"

【问题讨论】:

标签: javascript html


【解决方案1】:

可以使用递归函数获取所有子节点的文本内容:

function getText(node) {
  switch (node.nodeType){
    case Node.ELEMENT_NODE:
      if (node.tagName === 'IMG') {
        return node.getAttribute('alt');
      } else {
        var children = Array.prototype.slice.call(node.childNodes);
        return children.map(getText).join('');
      }
    case Node.TEXT_NODE:
      return node.textContent;
  }
}

var div = document.querySelector('div');
console.log(getText(div));
&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Hello World &lt;img alt="imageText" src="image/source"&gt;&lt;/img&gt;&lt;/div&gt;

【讨论】:

  • 谢谢,这个解决方案很好地解决了图像问题
猜你喜欢
  • 2015-11-06
  • 2013-01-15
  • 1970-01-01
  • 1970-01-01
  • 2015-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-13
相关资源
最近更新 更多