JS小提琴:http://jsfiddle.net/meYnS/3/
假设我有一个宽度为100px且.outer
的元素position:relative;
。它有一个内部元素,position:absolute;
和left:95px;
。即子元素超出了父元素的宽度。
现在,在JQUery中,如果我尝试使用$('.outer').outerWidth();
获取父级的宽度,则返回100。
但是如何获得外部元素的整个宽度(显然大于100,因为绝对定位的子元素)?
是否有内置方式或我必须进行手动计算(即将每个子宽度添加到父宽度以计算出整个宽度)?
答案 0 :(得分:6)
您可以使用属性scrollWidth
,scrollHeight
。
如果您使用的是jQuery,
$('.outer').get(0).scrollWidth
答案 1 :(得分:3)
您已将宽度设置为100px且子元素位于绝对位置,因此不会影响其父元素的宽度。父母的宽度仍然是100px。
答案 2 :(得分:0)
jQuery不提供对javascript属性scrollWidth
的访问,因此您必须使用jQuery访问DOM元素。
jQuery .get()是一种实现DOM元素的方法。
因此,使用jQuery的解决方案是$('.outer').get(0).scrollWidth
如果您使用原始javascript,则解决方案为document.getElementsByClassName('outer')[0].scrollWidth