[英]parseInt() error: invalid argument
使用parseInt()时出现JavaScript错误“无效争论”。 我究竟做错了什么?
该功能是将框架上每个元素的字体大小增加1
<script>
var sizeCounter = 1;
function changeFontSize(){
//var elements = parent.main.document.getElementsByTagName
var myElements = parent.main.document.getElementsByTagName('*')
for (i=0;i<myElements.length;i++){
if(myElements[i].style.fontSize != null){
var elmFontSize = myElements[i].style.fontSize + "";
elmFontSize.replace("px","");
if(elmFontSize != "") {
var elmFontSizeNum = parseInt(elmFontSize);
}
var resultSize = elmFontSizeNum + sizeCounter;
myElements[i].style.fontSize = resultSize + "px";
//alert(myElements[i].className)
}
sizeCounter++;
}
}
</script>
有很多错 这是简化/重写函数的建议:
function changeFontSize(sizeCounter){
sizeCounter = sizeCounter || 1;
var myElements = document.getElementsByTagName('*'), currentFontSize = 0;
for (i=0;i<myElements.length;i++){
var fsNow = getStyle(myElements[i],'font-size');
if (fsNow){
currentFontSize = Number(fsNow.replace(/[^\d]/g,''));
myElements[i].style.fontSize = (currentFontSize + sizeCounter) + 'px';
}
}
}
其中的getStyle
是:
function getStyle(el,styleProp)
{
el = /string/i.test(typeof el) ? document.getElementById(el) : el;
if (!el){return null;}
var result;
if (el.currentStyle){
return el.currentStyle[styleProp];
}
else if (window.getComputedStyle){
return document.defaultView.getComputedStyle(el,null)
.getPropertyValue(styleProp);
}
return null;
}
parseInt
将字符串作为第一个参数,您可能需要使用typeof(elmFontSize)
来确保elmFontSize实际上是字符串。 如果不是字符串,则可以在调用parseInt
函数之前将其转换为字符串。
您只能处理“ px”,而fontsize不一定是“ px”值。 例如,如果它是“ em”,则parseInt将失败,因为它试图转换非数字值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.