javascript replaceChild不起作用

前端之家收集整理的这篇文章主要介绍了javascript replaceChild不起作用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是计算机科学的学生,我们正在练习 javascript,练习是:
“将项目编号4替换为ID为”numberFour“的新项目和文本”Mistreatment“.”
这就是我做这个练习之前的样子:

>第一:寻找伴侣
>第二名:无聊
>第三:缺乏服从
>第四:虐待
>五号:寻求伴侣

然后我写了这个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]);

然后它看起来像这样:

>第一:寻找伴侣
>第二名:无聊
>第四:虐待
>第四:虐待
>五号:寻求伴侣

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

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

然后我得到了这个:

>第一:寻找伴侣
>第二名:无聊
>第三:缺乏服从
>第四:虐待
>第四:虐待
>五号:寻求伴侣

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

解决方法

childNodes包含li元素(和注释节点,如果有的话)之间的空格的文本节点.如果您只想要子元素,请使用子元素:
var vier = document.createElement("li");
vier.innerHTML = "Number four: Mistreatment - updated";
vier.setAttribute("id",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>

儿童适用于所有现代浏览器和IE8.

原文链接:https://www.f2er.com/js/240824.html

猜你在找的JavaScript相关文章