我有一些html,除了一个已知类的具体<a>外,我必须从所有标签中清除它们。
这是html:

var string = '<span class="so_sentence"><span> Some text <a class="so_footnote-ref" href="#footnote-104008-4" id="footnote-104008-4-backlink">[1]</a></span></span>';

我附加了JQuery,所以我得到了字符串的jQuery对象。
var html = $(string);

现在,我必须清除所有span和其他标签中的字符串,除了<a>之外:
<a class="so_footnote-ref" href="#footnote-104008-4" id="footnote-104008-4-backlink">[1]</a>

所以我的最终字符串应该是:
'Some text <a class="so_footnote-ref" href="#footnote-104008-4" id="footnote-104008-4-backlink">[1]</a>'

此外,还必须可以在结果上调用此函数,因此它必须是适当的类型:
function _trim(string){
    return string.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g,'').replace(/\s+/g,' ');
}

最佳答案

试试这个:

$(string).find(':not(a)').contents().unwrap()

这将与每段html代码一起出现。

示例:http://jsfiddle.net/E3RWL/1/

09-25 16:59