使用jquery无法正常工作的Html标签删除

时间:2014-12-13 05:23:09

标签: javascript jquery

我有一个这样的字符串:

var str = "x<span>^{<span style="vertical-align: 0em;"><span class="fm-vert fm-frac">3/2}</span></span></span>+y<span>^{<span style="vertical-align: 0em;"><span class="fm-vert fm-frac">7/8}</span></span></span>";

从此我要打印 x ^ {3/2} + y ^ {7/8}

为此我试过这样:

res1=$(str).find('span').contents().unwrap().end().end();


alert(res1.html());

但这仅提供 ^ {3/2} 。缺少x和第二部分(+y^{7/8})。

如何以x^{3/2}+y^{7/8}获得所需的结果。

请帮帮我......

4 个答案:

答案 0 :(得分:2)

试试这个......

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
    var str = 'x<span>^{<span style="vertical-align: 0em;"><span class="fm-vert fm-frac">3/2}</span></span></span>+y<span>^{<span style="vertical-align: 0em;"><span class="fm-vert fm-frac">7/8}</span></span></span>';
    jQuery(function(){
        jQuery('#test').html(str).hide();
        alert(jQuery('#test').html());

    });
</script>

<div id="test"></div>

这可能会对你有帮助。

答案 1 :(得分:0)

您可以将它作为临时div的一部分,然后在其上使用text,这将返回您想要的内容。

var str = 'x<span>^{<span style="vertical-align: 0em;"><span class="fm-vert fm-frac">3/2}</span></span></span>+y<span>^{<span style="vertical-align: 0em;"><span class="fm-vert fm-frac">7/8}</span></span></span>';
console.log($('<div />').html(str).text());

答案 2 :(得分:0)

您必须在相同类型的引号内转义引号。我只是避开它们

DEMO

var str = "x<span>^{<span style='vertical-align: 0em;'><span class='fm-vert fm-frac'>3/2}</span></span></span>+y<span>^{<span style='vertical-align: 0em;'><span class='fm-vert fm-frac'>7/8}</span></span></span>";
alert($('<div />', { html: str }).text());

我有时也这样做是为了让html字符串可读:

var str = ["x<span>^{",
              "<span style='vertical-align: 0em;'>",
                  "<span class='fm-vert fm-frac'>3/2}</span>",
              "</span>",
           "</span>",
           "+y<span>^{",
              "<span style='vertical-align: 0em;'>",
                  "<span class='fm-vert fm-frac'>7/8}</span>",
              "</span>",
           "</span>"].join('');

alert($('<div />', { html: str }).text());

答案 3 :(得分:0)

你试过吗

str.replace(/<(|\/)spa[^>]*>/g, '');

var str = 'x<span>^{<span style="vertical-align: 0em;"><span class="fm-vert fm-frac">3/2}</span></span></span>+y<span>^{<span style="vertical-align: 0em;"><span class="fm-vert fm-frac">7/8}</span></span></span>';

console.log(str.replace(/<(|\/)span[^>]*>/g, ''));

JSFiddle Here