var elemText = document.getElementById("insert");
for (var k = 1; k <= 4; k++) {
for (var j = 1; j <= k; j++) {
elemText.innerHTML += ('*');
};
elemText.innerHTML += ('<br>');
};
拆解:
document.getElementById("insert").innerHTML = "";
是否存在编码错误?是非常低效(我认为这不太可能是唯一的原因)?这与测试的设置方式有关吗?
答案 0 :(得分:1)
是否存在编码错误?
是。您忘记在测试#2中重新初始化<div>
。您需要清空它,就像在测试#1中设置result = []
一样。在拆卸中进行此操作是不够的,测试#2将在清除之前生成比测试#1更长的文本。
此外,您的测试用例的结果也不尽相同。由于您也希望在测试#1中输出<br />
元素,因此您也需要在{1}}中使用innerHTML
元素。您当前的代码确实将<br>
输出为文本。
是非常低效的吗?
是。使用innerHTML
效率很低 - 每次分配时都需要HTML解析器,并且您经常这样做。此外,由于您使用+=
,因此每次都需要序列化DOM。