jquery用习惯了,用width()就能获取元素的宽度,但有些时候用js获取元素宽度获取不到,document.getElementById("id").style.width,原因:
1.元素未设置宽度值
2.元素设置了宽度值,但,设置在内联或外联样式表中,而非内嵌式的。
虽然这种方式获取不到元素宽度,但是可以设置宽度 document.getElementById("id").style.width = "100px";
只有将元素的宽度设置成内嵌式,才能通过document.getElementById("id").style.width获取宽度
<p id="p1" style="width:100px;"></p>
对于没有设置宽度的元素、亦或CSS样式非内嵌式的,js原生写法可以通过offsetWidht来获取宽度。
jquery的width()与js的offsetWidth都可以获取元素的宽度,但有个区别:
.width()的值单纯是内容区域的宽度、不包括内外补丁和border。ie6+和chrome相同。
offsetWidth :包括了内补丁和border,不包括外补丁。