Javascript 如何在列表中找到文本并用新文本替换?

Javascript 如何在列表中找到文本并用新文本替换?,javascript,list,replace,nodes,Javascript,List,Replace,Nodes,我正在尝试编写一个函数,在DOM中搜索一个文本并用另一个文本替换它。换句话说,我有以下html: <ul> <li>Item1</li> <li>Item2</li> <li>Item3</li> <li>Item4</li> <li>Item5</li> </ul> 项目1 项目2 项目3 项目4 项目5 现在我想找到'It

我正在尝试编写一个函数,在DOM中搜索一个文本并用另一个文本替换它。换句话说,我有以下html:

<ul>
  <li>Item1</li>
  <li>Item2</li>
  <li>Item3</li>
  <li>Item4</li>
  <li>Item5</li>
</ul>
  • 项目1
  • 项目2
  • 项目3
  • 项目4
  • 项目5
现在我想找到'Item4'并将其替换为'newItem4'

我已经找到了“Item4”,但不知道如何用新文本替换它。以下是迄今为止我函数中的代码:

var array = ['Item1', 'Item2', 'Item3', 'Item4', 'Item5'];

function replace() {

  var x = document.querySelectorAll('ul');

  var newText = document.createTextNode('newItem4');

  for (var i = 0; i < array.length; i++) {

     if (array[i] === 'Item4') {

    }
}
var数组=['Item1','Item2','Item3','Item4','Item5'];
函数替换(){
var x=document.querySelectorAll('ul');
var newText=document.createTextNode('newItem4');
对于(var i=0;i

就我所知。不确定我是否走对了方向。

这就是你在HTML中找到它的方式

var lis=document.querySelectorAll('li');
李.forEach(函数(li){
if(li.innerText.trim()=“Item4”)
li.innerText=“NewItem4”;
});
  • 项目1
  • 项目2
  • 项目3
  • 项目4
  • 项目5

您可以这样做来替换

document.querySelector(“按钮”).addEventListener(“单击”,
函数(){
让searchText=document.querySelector(“#searchText”).value,
replaceText=document.querySelector(“#replaceText”).value;
[]forEach.call(document.queryselectoral(“li”),函数(元素){
if(element.innerText==搜索文本){
element.innerText=replaceText;
};
});
});
  • 项目1
  • 项目2
  • 项目3
  • 项目4
  • 项目5
搜索文本: 替换文本: 改变
函数替换(){
var li=document.getElementsByTagName(“li”);
对于(变量i=0;i
  • 项目1
  • 项目2
  • 项目3
  • 项目4
  • 项目5

您需要在HTML或数组中查找
项目4
吗?对不起,我应该指定。我需要在HTML中查找它。我只是在学习编码,忘记指定我们还没有进入jQuery,但我将尝试一下,只是为了好玩。谢谢!谢谢你!我们应该使用javascript来制作c在不创建新字段的情况下进行更改,但我没有指定此项。但这将是一个有趣的玩法!我只是将其作为一个示例。所有逻辑都在函数中。我喜欢此解决方案。如何仅使用javascript将id添加到列表中?(这是练习的一部分,因此我只能使用js编辑html。)@MicahWierenga我已经编辑了我的答案。请检查一下谢谢,我喜欢!(因为这是我的第一篇帖子,我无法投票,但我非常感谢!)
//index is the child number(li) and text is string to replace
function findAndReplace(index, text) {
    $("ul li:nth-child(" + index + ")").html(text);
}