如何使用javascript删除字符

How to remove character using javascript?

本文关键字:字符 删除 javascript 何使用      更新时间:2023-09-26

如何使用javascript删除Cite:后的, ?

<div id="mydiv">
  <div>
    ::before
    <div>
      <blockquote>
        <p></p>
        <p></p>
        <p></p>
        <cite>
          ::before
          "Cite:,    "
          <a href=""></a>
        </cite>
      </blockquote>
    </div>
  </div>
</div>

一般来说,使用正则表达式.replace():

很容易从字符串中删除逗号。
someString = someString.replace(/Cite:,/,"Cite:");

你可以将它应用到HTML元素的内容中,如下所示:

var cite = document.querySelector("#mydiv cite");
cite.innerHTML = cite.innerHTML.replace(/Cite:,/,"Cite:");
<div id="mydiv">
  <div>
    ::before
    <div>
      <blockquote>
        <p></p><p></p><p></p>
        <cite>
          ::before
          "Cite:,    "
          <a href=""></a>
        </cite>
      </blockquote>
    </div>
  </div>
</div>

…但请注意,它将重新创建cite元素的所有子元素,包括锚,这将删除绑定到锚的所有事件侦听器。

我删除了我认为你复制粘贴从html源代码,如::before,但你可以使用jquery替换元素的内容

$('cite')[0]
  .innerHTML = $('cite')[0]
    .innerHTML
    .trim()
    .replace(',', '');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="mydiv">
  <div>
    <div>
      <blockquote>
        <p></p>
        <p></p>
        <p></p>
        <cite>
          "Cite:,    "
          <a href="">link</a>
        </cite>
      </blockquote>
    </div>
  </div>
</div>

与其使用<cite>innerHTML属性,不如只更改包含"Cite:,文本的文本节点的内容。在本例中,我们知道文本节点将是<cite>firstChild。在更复杂的HTML中,在<cite>下搜索合适的文本节点可能更合适。

下面的代码将只更改文本。它不会干扰锚<a>。它将保留可能在该节点(或者<cite>的任何其他子节点,如果HTML实际上更复杂)上的任何侦听器的功能。[注:这段代码是基于nnnnnn在回答这个问题时提供的信息]

var cite = document.querySelector("#mydiv cite");
//In this instance, we know the text we want to modify will be in the text node
//   which is the firstChild of the <cite>.
cite.firstChild.textContent = cite.firstChild.textContent.replace(/Cite:,/,"Cite:");
<div id="mydiv">
  <div>
    ::before
    <div>
      <blockquote>
        <p></p><p></p><p></p>
        <cite>
          ::before
          "Cite:,    "
          <a href=""></a>
        </cite>
      </blockquote>
    </div>
  </div>
</div>