0
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 = "";

是否存在编码错误?只是效率极低(我认为这不太可能是唯一的原因)?这与测试的设置方式有关吗?

4

1 回答 1

1

是否存在编码错误?

是的。您忘记重新初始化<div>测试#2。您需要清空它,就像您result = []在测试 #1 中设置的那样。在拆解中这样做是不够的,测试 #2 在清除之前会生成比测试 #1 更长的文本。

此外,您的测试用例的结果也不相同。由于您还想<br />在测试#1 中输出元素,因此您也需要在innerHTML那里使用。您当前的代码<br>确实以文本形式输出。

改进的测试设置

是不是非常低效?

是的。使用innerHTML效率低下 - 每次分配给它时都需要 HTML 解析器,而且您经常这样做。此外,由于您正在使用+=它,因此每次都需要序列化 ​​DOM。

于 2013-01-27T17:05:47.927 回答