如何在一段指定的时间间隔后替换段落中的单词?

问题描述 投票:0回答:1

比如说我有一个这样的段落,我想把所有的 "段落 "换成 "文本"。<p class="some-text">This is just a random paragraph for example use. This is just a random paragraph for example use. This is just a random paragraph for example use. This is just a random paragraph for example use. This is just a random paragraph for example use.</p>

我想把所有的 "段落 "都替换成 "文本",我知道可以通过操作 字符串 使用 .replace(" paragraph", " text") 但这是一整段文字。我还想让文本延迟5秒改变,但我得到的回报是下面的代码 textToChange.replace is not a function. 如何用整段文字去做这件事?

function replaceWords() {
  const toChange = document.querySelector("some-text");

  const fixedWords = toChange
    .replace(" paragraph", " text")


  toChange.innerHTML = fixedWords;
}
setTimeout(replaceWords, 5000); 
javascript replace settimeout
1个回答
0
投票

你需要 innerHTML 在该段之前,将其替换并使用 /textToBeReplaced/g 来代替所有的发生。同时在 document.querySelector 你必须通过 . 名为 document.querySelector(".some-text");

function replaceWords() {
  const toChange = document.querySelector(".some-text");
  const fixedWords = toChange.innerHTML.trim().replace(/paragraph/g, " text")
  toChange.innerHTML = fixedWords;
}
setTimeout(replaceWords, 5000);
<p class="some-text">This is just a random paragraph for example use. This is just a random paragraph for example use. This is just a random paragraph for example use. This is just a random paragraph for example use. This is just a random paragraph for example use.</p>

0
投票

你需要从元素中获取文本(innerHTML)。

function replaceWords() {
  const toChange = document.querySelector("some-text");

  const fixedWords = toChange.innerHTML.replace(" paragraph", " text")
  toChange.innerHTML = fixedWords;
}
setTimeout(replaceWords, 5000); 

0
投票

我得到的回报是下面的代码 toChange.replace is not a function.

这是因为 toChange 不是一个字符串,而是一个HTML元素。

替换

const fixedWords = toChange
    .replace(" paragraph", " text")

随着

const fixedWords = toChange.innerHTML
    .replace(" paragraph", " text")

0
投票

document.querySelector("some-text"); 将是 document.querySelector(".some-text"); 对于班级需要添加 . 名前

toChange.replace 不是一个函数,它将 toChange.innerHTML

function replaceWords() {
  const toChange = document.querySelector(".some-text");

  const fixedWords = toChange.innerHTML.replace(" paragraph", " text")
  toChange.innerHTML = fixedWords;
}
setTimeout(replaceWords, 5000); 
<p class="some-text">This is just a random paragraph for example use. This is just a random paragraph for example use. This is just a random paragraph for example use. This is just a random paragraph for example use. This is just a random paragraph for example use.</p>
© www.soinside.com 2019 - 2024. All rights reserved.