【问题标题】:Remove HTMLtags with text enclosed into them删除包含文本的 HTML 标记
【发布时间】:2015-02-06 08:43:59
【问题描述】:

使用 jquery text() 函数删除字符串中的所有 HTML 标记?

我有这样的 HTML 字符串:
myContent = '<div id="test">Hello <span>world!</span></div>';


我想像这样从 jquery 生成输出:
Hello

我检查了this 的问题,但找不到我的答案。请让我知道它是否与任何其他问题重复。

任何帮助表示赞赏。提前致谢。

【问题讨论】:

  • $(myContent).find('span').remove().end().text()
  • @Satpal.. 这将从 DOM 中删除 span 元素
  • @Runcorn.. 我也这么认为.. 在这种情况下 satpal 是正确的
  • 谢谢你们的帮助。 @Satpal 谢谢亲爱的你!

标签: javascript jquery html


【解决方案1】:

你可以这样做

var myContent = '<div id="test">Hello <span>world!</span></div>';

var $tmp = $(myContent);
myContent = $tmp.contents().filter(function () {
    return this.nodeType == 3;
}).text();

console.log(myContent)

另一种方法是

var myContent = '<div id="test">Hello <span>world!</span></div>';

var $tmp = $(myContent);
$tmp.find('*').remove();
myContent = $tmp.text();

【讨论】:

    【解决方案2】:

    如果元素是页面上的dom元素,那么这个方案是有效的。一个简单的解决方案。 http://jsfiddle.net/u60b2fn1/1/

     $(function(){
       var str= $('#test').text()
        str = str.replace($('span').text(), "");
       alert(str );
    
    });
    

    如果有这样的字符串: var myContent = '&lt;div id="test"&gt;Hello &lt;span&gt;world!&lt;/span&gt;&lt;/div&gt;'; 然后 satpal 已经在fiddle

    中回答了这个问题

    【讨论】:

    • 谢谢!从中得到想法!
    【解决方案3】:
    var myContent = '<div id="test">Hello <span>world!</span></div>';
    
    alert($(myContent).text());
    

    或者你也可以这样使用它

    $(document).ready(function() {
        var myContent = '<div id="test">Hello <span>world!</span></div>';
        alert(myContent.replace(/(<([^>]+)>)/ig,""));
    });
    

    【讨论】:

    • 这不起作用。为什么人们对这些无效的答案投赞成票!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 2017-01-24
    • 2015-12-20
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    相关资源
    最近更新 更多