使用Javascript从MS Excel生成的HTML中删除不正确的嵌套跨距

使用Javascript从MS Excel生成的HTML中删除不正确的嵌套跨距,javascript,html,Javascript,Html,下面是MicrosoftExcel中的一些大部分已清理的HTML输出,但其中有一堆嵌套不正确的元素。理想情况下,在不依赖jQuery的情况下,使用Javascript删除这些元素的最佳方法是什么 为了达到这一点,我已经做了大量的清洁工作,但是移除这些元素是一个挑战。谢谢你提供的任何建议 <table> <tbody data-key="10020"> <tr data-key="10009"> <span data-k

下面是MicrosoftExcel中的一些大部分已清理的HTML输出,但其中有一堆嵌套不正确的元素。理想情况下,在不依赖jQuery的情况下,使用Javascript删除这些元素的最佳方法是什么

为了达到这一点,我已经做了大量的清洁工作,但是移除这些元素是一个挑战。谢谢你提供的任何建议

<table>
   <tbody data-key="10020">
      <tr data-key="10009">
         <span data-key="10002"><span data-offset-key="10002-0">
         </span></span>
         <td data-key="10004" style="text-align: left;"><span data-key="10003"><span data-offset-key="10003-0">Done</span></span></td>
         <span data-key="10005"><span data-offset-key="10005-0">
         </span></span>
         <td data-key="10007" style="text-align: left;"><span data-key="10006"><span data-offset-key="10006-0">Yes</span></span></td>
         <span data-key="10008"><span data-offset-key="10008-0">
         </span></span>
      </tr>
      <tr data-key="10018">
         <span data-key="10011"><span data-offset-key="10011-0">
         </span></span>
         <td data-key="10013" style="text-align: left;"><span data-key="10012"><span data-offset-key="10012-0">Done</span></span></td>
         <span data-key="10014"><span data-offset-key="10014-0">
         </span></span>
         <td data-key="10016" style="text-align: left;"><span data-key="10015"><span data-offset-key="10015-0">Yes</span></span></td>
         <span data-key="10017"><span data-offset-key="10017-0">
         </span></span>
      </tr>
   </tbody>
</table>

我知道您更喜欢不依赖jQuery的解决方案,但是,如果没有人提供使用纯javascript的解决方案,那么这就是后备解决方案

$document.readyfunction{ $'tr>span'。删除; }; 多恩 对 多恩 对
假设你说的是在浏览器中运行的客户端JS已经解析了无效的HTML…你不能。此时浏览器将已执行错误恢复


使用纯ES5JavaScript,您可以在浏览器呈现之后,使用下面的代码删除这些元素。它需要反转,因为返回的HTMLCollection对象的所有元素都按它们在文档中出现的顺序排列,并且它会自动更新自身以与DOM树同步。一些参考资料

var span=document.getElementsByTagName'span' 对于var i=跨度。长度-1;i>=0;我-{ var elm=跨度[i] var parent=elm.parentNode var txt=elm.innerText parent.removeChildelm 如果txt{ parent.innerText=txt } } 多恩 对 多恩 对
是否要删除所有跨度图元?或者只是一些特定的元素?我不想删除包含内容的span元素,但我确实想删除位于td元素之外的空元素。非常感谢。有趣的是,在你发布这篇文章的同一分钟,我就决定做一些非常类似的事情。我将使用相同的CSS:tr>span设置那些不正确的元素来显示:无非常感谢您的回复@不客气,伙计。我欣赏你的开放性和灵活性。看来你提供了一个更好的退路——最后一个人站着!;-解决方案,如果没有合适的js候选者出现。快乐编码