老师帮看一下作业,为什么控制台输出跟页面的不一样,怎么改?

来源:4-4 编程练习

要每天学习的小蓝同学

2021-06-02 23:06:49

相关代码:

<body>
<div id="list">
<!--html结构参考如下:-->
<dl>
<dt>前端</dt>
<dd>Vue</dd>
<dd>Vue</dd>
<dd>Vue</dd>
</dl>
</div>
<script>
var classfies = {
"前端": ["Vue", "Angular", "React"],
"后端": ["Php", "Java", "Python"]
}
/*补充代码*/

let htmlStr='';
for (const [key,value] of Object.entries(classfies)){
htmlStr=`<dl><dt>${key}</dt><dd>${value}</dd><dd>${value}</dd><dd>${value}</dd></dl><dl><dt>${key}</dt><dd>${value}</dd><dd>${value}</dd><dd>${value}</dd></dl>`;
console.log(htmlStr);
};
let list=document.getElementById('list');
list.innerHTML=htmlStr;
</script>
</body>

http://img.mukewang.com/climg/60b79e8509f98b6e16510673.jpg

写回答

1回答

好帮手慕慕子

2021-06-03

同学你好,因为控制台输出的每次循环时htmlStr的值,由于每次循环都会给htmlStr重新赋值,导致页面中显示的htmlStr是循环结束时的值,所以不一样。

具体可以结合下图注释修改与理解:

http://img.mukewang.com/climg/60b836fc09751c4216090602.jpg

效果如下:

http://img.mukewang.com/climg/60b8370809fcb3b201890220.jpg

祝学习愉快~

0

0 学习 · 15276 问题

查看课程