如果你需要从"300px"中得到数值"300",使用:parseInt就可以。例如:
parseInt(div1.style.width)
但你现在直接使用元素的style属性中的width属性取得元素宽度,这种做法存在问题:如果div元素是通过class或id使用外部的CSS样式表,那么在程序中读取div.style.width时,读到的值是一个空字符串。
较好的解决办法:
1. 获取窗口宽度:
function getWindowWidth()
{
var windowWidth;
if (self.innerHeight) { // all except Explorer
if(document.documentElement.clientWidth){
windowWidth = document.documentElement.clientWidth;
} else {
windowWidth = self.innerWidth;
}
} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
windowWidth = document.documentElement.clientWidth;
} else if (document.body) { // other Explorers
windowWidth = document.body.clientWidth;
}
return windowWidth;
}
2 获取元素宽度:(源自prototype)
function getElemWidth(element)
{
var display = element.style.display;
if (display != 'none' && display != null) // Safari bug
return element.offsetWidth;
// All *Width and *Height properties give 0 on elements with display none,
// so enable the element temporarily
var els = element.style;
var originalVisibility = els.visibility;
var originalPosition = els.position;
var originalDisplay = els.display;
els.visibility = 'hidden';
els.position = 'absolute';
els.display = 'block';
var originalWidth = element.clientWidth;
els.display = originalDisplay;
els.position = originalPosition;
els.visibility = originalVisibility;
return originalWidth;
}
通过以上两种发法分别获取窗口宽度和元素宽度,会更加可靠。