如何解开多个父元素

时间:2015-01-05 09:50:19

标签: javascript jquery

我正在从服务器解码html。一旦我收到这样的话:

它的跨度只是嵌套在no.of span的

<p><span><span><span><span>The portacabin consist of toilets, <strong></strong> <strong>\u003e\u0026#160;</strong> showers and changing cubicles, a classroom, an office and a store room.&nbsp;<br>The
 upgrade shall include development of foot paths and installation of new
 up-lights around the area complete with all the required &amp; 
necessary directional signages, as per the Standards Engineering 
Specification &amp; approval by client.</span></span></span></span></p>

我想删除span中不需要的内容,即使它只有space。怎么做?

我试过这个:

var p = $('p').contents().unwrap();

console.log(p);

有一个空的强元素,只有space有强烈的元素 - 如何清除它?

它展开了一步,就是这样。 有人帮我吗?

Live

1 个答案:

答案 0 :(得分:1)

您可以使用.nodeType属性测试文本级节点,然后将它们与空白正则表达式/\s*/进行匹配:

if (this.nodeType === Node.TEXT_NODE) {
    this.innerText.match(/\s*/) && $(this).unwrap();
}

您可以将其置于包含.each()函数的循环中,以展平span - s的每个级别,并在所有span上进行迭代。这是一个显示基本版本的小提琴:http://jsfiddle.net/LwmoLp3o/2/