我是计算机科学的学生,我们正在练习
javascript,练习是:
“将项目编号4替换为ID为”numberFour“的新项目和文本”Mistreatment“.”
这就是我做这个练习之前的样子:
“将项目编号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.