替换包含其他DOM元素的范围中的文本

时间:2016-08-25 03:04:27

标签: html css html5 css3 sharepoint

我有这样的代码,我需要删除由我无法控制的代码(由SharePoint生成)自动插入的​个字符。它们通过插入额外的空行来破坏布局:

<div id="ctl00_PlaceHolderMain_ctl01__ControlWrapper_RichHtmlField" class="ms-rtestate-field" style="display:inline" aria-labelledby="ctl00_PlaceHolderMain_ctl01_label">
    &#8203;&#8203;&#8203;
        <span>                            &#8203;
          <div class="cg-division-intro-outer">
            <div class="cg-division-intro-inner">
                <div class="cg-division-intro-header">
                    <h1>Division Intro</h1>
                </div>

... etc

请注意,&#8203;实体作为裸文本插入,未包装到任何元素中,因此我无法直接将它们作为目标。

以下是我的尝试:

  1. 在包含垃圾和可见性的元素上使用visibility: hidden:在我的代码上可见。没有效果。
  2. 将包含垃圾的父元素的font-size减少为0px,并在其他元素上恢复font-size。没有效果。
  3. 获取父元素的innerHTML,执行.replace()并将HTML重新插入页面 - 但随后所有节点都将丢失/重新创建,这意味着任何连接的侦听器都可能丢失。
  4. 尝试使用:不是,但没有找到有效的解决方案。
  5. 以下是&#8203; s:

    创建的白条

    enter image description here

1 个答案:

答案 0 :(得分:1)

DEMO

JS

使用library(corrplot) cors = cor(VADeaths) corrplot(cors,tl.col="black",title="Example Plot",mar=c(0,0,5,0),tl.offset = 1) 并将其值更改为childNodes

nodeValue

HTML

var d = document.getElementById('div1').childNodes[0];
d.nodeValue = "new text"; // change value

// if you want to remove the element
d.parentElement.removeChild(d)