老师,我有疑惑
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>节点练习</title> </head> <body> <div id="wrap"> <ul id="list"> <li>第一个li</li> <li>第二个li</li> <li>第三个li</li> </ul> </div> <script> //在此处补充代码 var div=document.getElementById("wrap"); var ul=div.firstChild; var newUl=document.createElement("ul"); for(var i=0;i<4;i++){ var newLi=document.createElement("li"); var newText=document.createTextNode("第"+(i+1)+"天学习前端"); newLi.appendChild(newText); newUl.appendChild(newLi); } wrap.replaceChild(newUl,list); </script> </body> </html>
这样写可以吗
好像可以实现替换的目的但是他给我报错
Failed to load resource: net::ERR_FILE_NOT_FOUND
还有之前我是这么写的,为什么这样实现不了效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>节点练习</title> </head> <body> <div id="wrap"> <ul id="list"> <li>第一个li</li> <li>第二个li</li> <li>第三个li</li> </ul> </div> <script> //在此处补充代码 var div=document.getElementById("wrap"); var ul=div.firstChild; var newUl=document.createElement("ul"); for(var i=0;i<4;i++){ var newLi=document.createElement("li"); var newText=document.createTextNode("第"+(i+1)+"天学习前端"); newLi.appendChild(newText); newUl.appendChild(newLi); } div.replaceChild(newUl,ul); </script> </body> </html>
5
收起
正在回答
1回答
同学你好,
粘贴的第一段s代码, 老师这边测试,代码正确,不会出现同学说的Failed to load的错误
第二段代码没有实现效果,是因为子节点并不一定都是元素节点,还有可能包含文本节点或者注释节点等节点, 空格或者换行被看做文本节点。 所以div.firstChild获取的是div下的第一个子元素是换行(文本节点),导致无法实现效果。可
以打印查看div下的子节点又有哪些内容
打印结果
建议修改:同学可以直接第一种方式先获取ul列表, 然后在实现替换的功能哦
如果帮助到了你, 欢迎采纳!
祝学习愉快~~~~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星