因为许多天,我坚持用,如果我想补充<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
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句