javascript - JavaScript 在添加时崩溃
问题描述
很多天以来,如果我想添加 or ,我就会坚持下去<br>
,elem.innerHTML += '<br>'
整个document.createElement('br')
网站都会崩溃。但是,如果我使用普通字母来执行此操作,则效果很好。
function setSpace(elem){
if((elem.clientHeight-49)/16 >= 1){
for(var i=0; i <= (elem.clientHeight-49)/16; i++){
elem.innerHTML += '<br>';
}
}
}
我怎么解决这个问题?
解决方案
循环可能永远不会完成,因为您在每次迭代中都扩展了元素的高度,这也影响了循环的停止条件。elem.clientHeight
增加,并且i
可能永远不会大于(elem.clientHeight-49)/16
。
一种出路是首先将限制放入变量中,然后使用它:
function setSpace(elem){
let end = (elem.clientHeight-49)/16;
if (end >= 1){
for(var i=0; i <= end; i++) {
elem.innerHTML += '<br>';
}
}
}
...但仍然要小心,因为下次调用setSpace
它会添加更多换行符。如果你继续调用这个函数,你将永远不会停止添加换行符。
查看您使用此代码的真正目的。
有更好的方法可以为元素添加间距,例如使用 CSS padding-bottom
。
推荐阅读
- angular1.6 - 始终加载的角函数(自动)
- mysql - 使用 INNER JOIN 函数插入值的 SQL 错误
- python - Mpl 工具包 plot_surface 未显示任何输出
- c# - Unity 给出“类型或命名空间定义,或预期文件结尾”错误
- makefile - make[1]: 错误问题无事可做
- javascript - 有没有办法将对象而不是数组发送到后端?- 反应JS
- c# - 字典在 c# 中有重复的键与 toDictionary
- autodesk-forge - Forge Autodesk Viewer 窗口在调整大小后被截断
- mongodb - 需要使用 $and
- path - Bitbake 设置 BBPATH:找不到命令