gpt4 book ai didi

javascript replaceChild 不起作用

转载 作者:数据小太阳 更新时间:2023-10-29 05:12:23 26 4
gpt4 key购买 nike

我是计算机科学专业的学生,​​我们正在用 javascript 做练习,练习是:“用 ID 为“numberFour”且文本为“Mistreatment”的新项目替换项目编号 4。” 这是我做练习之前的样子:

  1. 第一:寻找伴侣
  2. 第二:无聊
  3. 第三:缺乏服从
  4. 第四:虐待
  5. 第五点:寻求伙伴关系

然后我写了这段js代码来完成作业:

var vier = document.createElement("li");
vier.innerHTML = "Number four: Mistreatment";
vier.setAttribute("id", "numberFour");
var lijst = document.querySelector("#fiveReasons");
lijst.replaceChild(vier, lijst.childNodes[3]);

然后它看起来像这样:

  1. 第一:寻找伴侣
  2. 第二:无聊
  3. 第四:虐待
  4. 第四:虐待
  5. 第五点:寻求伙伴关系

所以我将我的代码更改为:

var vier = document.createElement("li");
vier.innerHTML = "Number four: Mistreatment";
vier.setAttribute("id", "numberFour");
var lijst = document.querySelector("#fiveReasons");
lijst.replaceChild(vier, lijst.childNodes[4]);

然后我得到了这个:

  1. 第一:寻找伴侣
  2. 第二:无聊
  3. 第三:缺乏服从
  4. 第四:虐待
  5. 第四:虐待
  6. 第五点:寻求伙伴关系

我的老师不明白为什么它不起作用,我也不明白,有人可以帮助我吗?

最佳答案

childNodes 包含 li 元素之间空白的文本节点(以及注释节点,如果有的话,等等)。如果您只想要子元素,请使用children:

var vier = document.createElement("li");
vier.innerHTML = "Number four: Mistreatment - updated";
vier.setAttribute("id", "numberFour");
var lijst = document.querySelector("#fiveReasons");
lijst.replaceChild(vier, lijst.children[3]);
<ol id="fiveReasons">
<li>Number one: Looking For a Mate</li>
<li>Number two: Boredom</li>
<li>Number three: Lack of Obedience</li>
<li>Number four: Mistreatment</li>
<li>Number five: Seeking Companionship</li>
</ol>

children 适用于所有现代浏览器和 IE8。

关于javascript replaceChild 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27481491/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com