【问题标题】:remove tags which javascript returns with the text删除 javascript 随文本返回的标签
【发布时间】:2010-02-01 05:46:39
【问题描述】:

这是我的功能

    function getInfo(Description) {


        return Description;    


}

这里有说明

<p>Info Summary:<span>2.26PM</span> InfoADDED</p>

现在,我想在返回“描述”之前消除 html标签 请。帮助

【问题讨论】:

  • 你使用哪种服务器端语言?

标签: javascript html


【解决方案1】:

您可以使用 dummy DOM 元素,将描述设置为innerHTML,然后获取其textContent,这将取出所有标签,并处理所有 HTML 实体喜欢&amp;nbsp;:

function getInfo(description) {
  var tmp = document.createElement('div');
  tmp.innerHTML = description;

  return tmp.textContent || tmp.innerText;
}

getInfo('<p>Info Summary:<span>2.26PM</span> InfoADDED</p>&nbsp;');
// returns "Info Summary:2.26PM InfoADDED "

查看示例here

【讨论】:

  • 使用隐藏的现有 div 比为每个函数调用创建新 div 不是更好吗?
  • 好吧,将div 元素存储在clusore 中并重用它可能会更好,因为这些元素不需要存在于DOM 中。像这样:jsbin.com/ilixu/3/edit
【解决方案2】:

尝试使用正则表达式去除标签。

function getInfo(Description) {
  return Description.replace(/(<([^>]+)>)/ig,"");
}

【讨论】:

  • 像   这样的字符呢?和别的..?如何避免它们
【解决方案3】:

这样做的一个万无一失的方法是遍历每个节点并提取文本节点内的字符串并将它们连接起来。

如果您可以选择使用 jquery。 jquery 中的text 函数会为您执行此操作。

【讨论】:

    【解决方案4】:

    这对我有用

    return Description.replace(/&nbsp;/gi, " ").replace(/(<([^>]+)>)/ig, "");
    

    CMS ex 以上也不错 但这对我来说是最合适的

    【讨论】:

      猜你喜欢
      • 2016-04-16
      • 2015-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      • 2014-01-28
      • 1970-01-01
      相关资源
      最近更新 更多