javascript - 如何解开多个父元素

标签 javascript jquery

我正在从服务器解码html。一旦我收到,看起来像这样:

它的跨度简单地嵌套在多个跨度内

<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,即使它只有空间。如何做到这一点?

我尝试过这个:

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

console.log(p);

有一个空的强元素,并且只有空格和强元素 - 如何清除它?

它解开步骤,就是这样。 有人可以帮帮我吗?

Live

最佳答案

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

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

您可以将其放入带有 .each() 函数的循环中,以展平 span-s 的每个级别,并在所有 span< 上进行迭代s。这是一个显示此基本版本的 fiddle :http://jsfiddle.net/LwmoLp3o/2/

关于javascript - 如何解开多个父元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27776948/

相关文章:

javascript - 访问 after() 附加的元素

javascript - 变量 x, y = 'foo' ;这能实现吗?

javascript - 如何在页面刷新时中止ajax请求

javascript - 单击时显示谷歌地图不加载

php - 数据从 JSON 到 php 格式的转换是如何发生的

javascript - Nodejs中如何查看JS的方法

javascript - css元素后面的背景图片

javascript - 苹果捕手游戏

javascript - Yii2:使用表单外的按钮提交并验证表单

javascript - 这个链接有什么问题? <a href ="#"onclick ="getNextPage();">下一步></a>